Starting the third day on 12-0, Zimbabwe were dismissed for 197 in their second innings. Ireland, needing 158 runs to win, struggled against Ngarava's impressive bowling and ended the day at 33-5, still needing an additional 125 runs, reports Times of India.
Zimbabwe's innings began as they nearly erased a first-innings deficit of 40 runs, but Joylord Gumbie was caught in the slips off Craig Young.
Shortly after, Barry McCarthy had Prince Masvaure caught behind, and Craig Ervine was lbw to Mark Adair.
A crucial stand of 68 between Sean Williams and Dion Myers, who top-scored with 57, then helped Zimbabwe recover. Williams contributed 40 runs before being dismissed. Andy McBrine cleaned up the tail with figures of 4-38, setting Ireland a seemingly modest target of 158 with over two days to achieve it.
Ngarava changed the game's course by taking two wickets in two balls, dismissing Peter Moor and Curtis Campher. New-ball partner Blessing Muzarabani removed Ireland captain Andy Balbirnie soon after.
Ngarava continued the onslaught with Harry Tector and Paul Stirling both caught behind by wicketkeeper Clive Madande, before rain interrupted play.
By the end of the day, Ireland's hopes were diminished as they were left at 33-5, with 125 more runs required to win.