Shahid Afridi led Pakistan to a comfortable 46-run win over Canada with his second five-wicket haul at the Cricket World Cup, but the 1992 champions needed something special from their skipper after a ragged batting performance.
Canada looked capable of pulling off another shock victory when they dismissed Pakistan for 184, then reached 104 for three before Afridi triggered a collapse with two wickets off successive balls.
The Pakistan skipper ended up with five for 23 with Canada dismissed for 138. Pakistan have won all three of their pool games.
In Mohali, South Africa steamrolled the Netherlands by 231 runs.
Asked to bat first South Africa posted 351 for five, including centuries for Hashim Amla and AB de Villiers, then dismissed the Dutch for 120 in just 35 overs.