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.
Scotland v Ireland: TV details, kick-off time and team news for Sunday’s Murrayfield clash
Malachy Clerkin: In this Trump reality there’s a bad moon rising - it’s already clear sport won’t be a haven
Kevin Kilbane: Mason Melia’s historic move should spur Government to support the League of Ireland
Football and Hurling League previews: Busy weekend in store for both codes
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.