England made 279 for six after being sent in but, despite reducing Canada to 65 for four, were unable to bowl out the minnows without their pace-bowling all-rounder Andrew Flintoff.
They were held up first by a fifth-wicket stand of 96 between Abdool Samad (36) and Ashif Mulla (60), who hit all-rounder Paul Collingwood for a six over the roof of the stand at deep mid-wicket.
Although both batsmen fell within the space of four balls, with the score on 161, Canada finished on 228 for seven - their best total at the World Cup in 11 matches after they'd made 202 against the West Indies at Centurion in 2003.
It was also 29 more than the 199 they managed four days ago in their seven-wicket opening Group C match thrashing by Kenya.
Desmond Chumney was 27 not out and George Codrington seven not out.
England had Canada in trouble at 22 for two after Liam Plunkett removed Geoff Barnett and Ashish Bagai.
Canada skipper John Davison, back in the opening slot where he made the fastest World Cup hundred, off 67 balls against the West Indies, at Centurion four years ago, made 21 off 25 balls before lofting James Anderson to Ian Bell on the cover boundary.
Monty Panesar took one for 35 from 10 overs but Samad and Mulla were largely untrouble by the remainder of England's attack.
Samad was eventually lbw to Panesar before Mulla's 60-ball innings with one six and seven fours ended when he was stumped by wicket-keeper Paul Nixon off medium-pacer Ravi Bopara, Flintoff's replacement.
Flintoff was dropped for a "breach of team discipline", the Lancashire ace one of several players fined for staying out until the early hours of the morning after England's six-wicket defeat by New Zealand in their World Cup opener here Friday.
England's Irish-born left-handed opener Ed Joyce top-scored with 66 while Paul Collingwood finished on 62 not out off 48 balls with one six and four fours.
Former Guyana left-armer spinner Sunil Dhaniram, now a fork-lift truck driver, took three wickets for seven runs in 11 balls as England declined from 153 for one to 161 for four before scoring 30.
However, a fifth wicket stand of 81 between Collingwood and Bopara, who made 29 on his World Cup debut and in only his second match at this level, revived England's innings.
Nixon added late impetus with a dynamic 23 not out off just eight balls including a straight six off the last ball of the inningts from former West Indies fast bowler Anderson Cummins .
Dhaniram, 38, removed Ian Bell (28), Joyce and dangerman Kevin Pietersen (five) on his way to figures of three for 41 from his full 10 overs.
Joyce, dropped twice helped England captain Michael Vaughan put on England's first century opening stand in 27 one-day internationals.
That end when Vaughan fell for 45, a slashed square-cut off spinner Samad caught by Davison at backward point to leave England 101 for one off 20 overs.
Vaughan faced 64 balls with seven fours.
Dhaniram's burst began when Ian Bell on 28, top-edged a sweep and was caught by Codrington.
And in his next over Dhanirman struck twice in six balls as England suffered another mid-innings slump.
First Joyce was bowled reverse-sweeping before Pietersen (five) chipped a return catch.