Ed Joyce hit 112 as Ireland beat Zimbabwe by five runs after Alex Cusack grabbed two final-over wickets to bowl out Zimbabwe for 326 in their World Cup Group B clash in Hobart.
An expensive 49th over looked to have opened the door for Zimbabwe as they needed seven off the final six balls but Ireland rallied to keep their bid to reach the World Cup quarter-finals on track.
Joyce's third one-day international century helped Ireland post 331 for eight - their highest ever score at a World Cup - but Zimbabwe looked like running down the record chase until a debatable John Mooney catch.
Replays appeared to show Mooney had stepped on the rope when he held on to remove Sean Williams, who was four short of a century and seemingly in control of the pursuit.
The third umpire was called to judge the catch, although Williams did not remain on the field of play after he instead opted to take the word of Mooney that he had taken the catch inside the rope.
There was still drama to follow as number 10 Tawanda Mupariwa slapped 19 from the penultimate over, delivered by Kevin O'Brien, to leave Zimbabwe needing seven from the last six balls.
But Cusack held his nerve as he claimed the final two wickets, first getting Regis Chakabva to drag on before Mupariwa skied a catch William Porterfield gratefully accepted.
While Joyce's 112 earned him the man-of-the-match award Cusack's four for 32 was just as invaluable, especially after he removed Zimbabwe skipper Brendon Taylor for 121.
The victory was Ireland's second over a full-member nation at the tournament after they opened their campaign with a win over West Indies.
They will, however, most likely need to pull off one more shock in their final two pool games against India and Pakistan.
Pakistan's surprise win over South Africa earlier in the day did Ireland few favours and their clash in Adelaide on March 15 looms as a potential decider.
Joyce became the fourth Ireland player to score a World Cup century although he was given a helping hand by a sloppy Zimbabwe fielding display.
The Sussex batsman was twice dropped, while he edged his first ball just short of slip, but was otherwise imperious as he hit nine fours and three sixes.
He joined in a third-wicket partnership of 138 with Andy Balbirnie, who was only three runs away from following Joyce to three figures after he was run out during the late-over scramble.
Ireland took 108 from the final 10 overs to reach their highest ODI score, surpassing the 329 for seven they racked up during their famous World Cup win over England in Bangalore four years ago.
When Zimbabwe then crashed to 74 for four in reply Ireland were in total control only for Taylor and Williams to turn the momentum of the match in a 149-run stand.
Taylor reached his century from 79 balls and Ireland's attack was looking toothless until Cusack produced a slower ball to fool the Zimbabwe skipper into spooning a catch to mid-on.
Williams kept the scoreboard ticking over and had reduced the task to a manageable 32 from 20 balls when Mooney's controversial catch was claimed.
It was a critical moment and while Mupariwa made Ireland sweat, as he hit Kevin O'Brien for back-to-back fours and then a six, Cusack cleaned up the tail in a thrilling finale.