Off-spinner Jimmy Kamande was the pick of the attack who reined in Canada's innings, taking a superb two for 15 from his full 10 overs.
Left-armer Hiren Varaiya was also impressive with one for 19 from 10 on his World Cup debut.
Canada were looking good while opener Geoff Barnett (41) was at the crease but their innings became bogged down when he was out.
However, former Guyana player Sunil Dhaniram added impetus late on with an unbeaten 34 off 35 balls, including a six and three fours, to give Canada's bowlers hope.
Canada, who lost the toss, made a sound start through openers Barnett and Abdool Samad
But with the score on 40 for one in the 11th over, Canada lost Samad (15) when he guided Thomas Odoyo to Tikolo in the gully.
Left-hander Barnett, stroked five fours off the 14th over, bowled by first change Nehemiah Odhiambo, with the pick a straight drive down the ground.
Barnett, showing the benefits of playing first-class cricket for Central Districts in New Zealand during the 2006-07 season, was in sight of a fifty when he holed out.
Going for a big pick-up off paceman Peter Ongondo, Barnett was well caught on the long leg boundary by Tanmay Mishra.
Barnett faced 50 balls with nine fours, Canada now 73 for two in the 15th over.
Canada's innings then became becalmed with Varaiya applying the brake.
Ashish Bagai (19 off 48 balls), gave Varaiya a wicket albeit in farcical fashion. Lured yards down the pitch, Bagai saw wicket-keeper Maurice Ouma fumble his first attempt at a stumping.
Bagai dived back and appeared to have made his ground. But his bat was still in the air when Ouma broke the wicket and, after a replay ruling, he was given out to leave Canada 102 for three in the 26th over.
His exit brought in Canada captain John Davison who, as an opener, scored the fastest World Cup hundred of all-time, off 67 balls, against the West Indies at Centurion during the 2003 tournament.
But this time around when Davison was clean bowled for eight by an off-break from Kamande, who claimed a second wicket when he yorked Qaiser Ali.
Dhaniram hit cleanly as the innings ended with a trio of run-outs.
Canada 199 all out in 50 overs (Geoff Barnett 41, Ian Billcliff 34, Dhaniram 34 n o, Mulla 25; Jimmy Kamande 2 for 25, Steve Tikolo 2 for 34, Varaiya 1 for 19) Vs Kenya (yet to bat)