Captain Andy Balbirnie and Lorcan Tucker both scored half-centuries as Ireland set Zimbabwe a testing victory target of 292 before taking three wickets on the third day of the one-off Test in Bulawayo.
The tourists had resumed their second innings at 83 for one.
Balbirnie, batting on from 32 overnight, had helped push the total on to 171 for four when he was trapped lbw on 66 by Wesley Madhevere, who claimed his maiden Test wicket.
Wicketkeeper-batter Tucker dug in with a determined 58, with six boundaries and one over the rope, from 95 deliveries before he was last man out from a top edge off seamer Richard Ngarava, with Andy McBrine (16) and Mark Adair (15) having provided useful support.
Meet the Ireland under-17s who made history in qualifying for the World Cup
Seán Moran: GAA trying to bend century-old competitions into modern structures
Gordon D’Arcy: It’s up to Irish players to reap the benefits of bringing in RG Snyman and Jordie Barrett
Sergio Garcia knocked back again but still has opportunity to reach Open
Ngarava finished with four wickets for 55 runs as Ireland were dismissed for 298 from 93.3 overs.
Zimbabwe, looking to make a record victory run-chase when batting last, lost openers Takudzwanashe Kaitano (14) and Ben Curran (four) cheaply.
Test debutant Nick Welch (five) was then trapped lbw by Matthew Humphreys, leaving the hosts 38 for three from 15 overs at stumps, with Brian Bennett on 15 not out, and needing another 254 to win.