Zimbabwe started the day on 12 without loss but Ireland took regular wickets, including four from Andy McBrine, who swept through the tail as the visitors slipped to 197 all out, leaving Ireland 158 to claim victory.
The home side were in control as they headed out to bat in the final innings but their top order fell apart as Ngarava claimed four wickets inside eight overs. Ireland were 5-33 when rain saved them from a worse fate with 21 overs left in the day.
They still need 125 runs to win but have  just five wickets in hand at Stormont Cricket Ground.
Before Zimbabwe wiped out their 40-run first-innings deficit, Joylord Gumbie nicked Craig Young to Andy Balbirnie in the slips. Fellow opener Prince Masvaure departed three balls later, sending an inside edge behind.
Craig Ervine was trapped leg before wicket by Mark Adair but a partnership between Sean Williams and Dion Myers began to form and took Zimbabwe into lunch at 3-96.
Their partnership of 68 was broken when Williams edged Young to wicketkeeper Lorcan Tucker, and Zimbabwe were 6-174 when Brian Bennett and Clive Madande departed cheaply.
Myers top-scored with 57 but Adair got him lbw and Zimbabwe reached tea at 8-182.
McBrine cleaned up the last wickets after tea, leaving Ireland 158 to win.
But Ngarava started ferociously, claiming two wickets in two balls to send Peter Moor and Curtis Campher packing with six runs on the board. In the following over, Blessing Muzarabani claimed Balbirnie.
Ngarava had his tail up. Harry Tector edged behind for no score, Paul Stirling fell in carbon copy fashion on 10 and Ireland had 33 on the board when the rain arrived..