Mahela Jayawardene scored Sri Lanka's fastest World Cup century as the co-hosts opened their Group A campaign with a 210-run victory over Canada.
Jayawardene was out straight after bringing up his landmark from 80 deliveries, an innings that helped Sri Lanka pile up 332-7 in Hambantota.
After the hosts opted to bat first, Tillakaratne Dilshan set the tone with 50 before Jayawardene and skipper Kumar Sangakkara (92) added 179 for the third wicket.
In reply, Canada lost John Davision for a golden duck at the start of the second over and soon slumped to 12-3 before eventually being all out for 122.
Seamers Nuwan Kulasekara (3-16) and Thisara Perera (3-24) finished with three wickets apiece as Canada fell more than 13 overs short of using their full allocation.
Upul Tharanga and Dilshan put on 63 for the opening wicket before a horrible miscommunication left Tharanga run out for 19.
Dilshan notched his half-century in 58 deliveries but Cheema forced a mistimed drive from the right-hander to have him caught by Davison at deep cover.
Jayawardene steadied the innings alongside Sangakkara and reached his own 50 with a boundary off Davison.
The pair frustrated Canada's bowlers with their patient strokeplay, while Sangakkara crossed the 50 mark with a boundary that took the partnership past 100.
Sri Lanka's captain fell eight short of his 100 in the 42nd over, caught and bowled tamely off Davison before Jayawardene reached his hundred with a single.
He, too, was showing signs of fatigue and a hopeful sweep off Davison (2-56) only found Balaji Rao at short fine-leg.
Canada's start was in stark contrast to Sri Lanka's as Davison, Ruvindu Gunasekara (one) and Zubin Surkari (six) departed in successive overs with just 12 on the board, Perera and Kulasekara doing the damage between them.
Canada's woes were compounded when Jimmy Hansra (nine) was deceived by Thillan Samaraweera's flighted delivery to be stumped, while captain Ashish Bagai - who had survived two UDRS reversals - became Perera's third victim caught behind for 22.
Rizwan Cheema showed flashes of brilliance but Kulasekara snapped up the wickets of Tyson Gordon (four) and Khurram Chohan's (four), both caught behind.
Cheema worked hard for his 37 off 35 balls, even hitting Muralitharan for two sixes, but the spinner finally had his man caught off a wild slog by Jayawardene, with the last two wickets then falling for just 19 runs added.
Sri Lanka left out paceman Lasith Malinga from their starting XI due to a back strain but he is expected to be fit for their next assignment, against Pakistan in Colombo on February 26.