Munster ended a run of five straight defeats as Ian Keatley's nine points proved enough to see off in-form Ulster in the Pro12 game at Kingspan Stadium.
A Keatley penalty edged Munster ahead and the visitors defended bravely to stay in touch after a Louis Ludik try had helped Ulster move 7-3 up.
Munster had more possession after the break and a Keatley penalty and drop goal put them ahead by the 61st minute.
Paddy Jackson's two late penalty misses left Munster celebrating a vital win.
Defeat would have represented Munster's worst ever losing run. And the game was also a personal triumph for man-of-the-match Keatley after his recent struggles in the red jersey.
The fly-half was booed by a small group of Munster fans after missing a number of kicks in last month's European defeat by Leicester and the verbal abuse generated a wave of sympathy for the Ireland fly-half.
Keatley kicked Munster into a ninth-minute lead as they turned early possession into points.
Ulster regrouped to take control and Ludik's 24th-minute try helped them move ahead, although the score was controversial with referee Gary Conway appearing to miss offside and knock-on infringements in the build-up.
As Ulster continued to press, Andrew Trimble, making his 200th appearance for the Irish province, was denied a try as the ball bounced off his leg into touch following a clever Stuart McCloskey grubber kick.
But with back row forwards Tommy O'Donnell and Jack O'Donoghue particularly prominent, Munster held out until the break and then summoned up a big effort after half-time.
Despite playing the game in Ulster's half, Munster's attack continued to lack a cutting edge but crucially their pressure was finally rewarded by Keatley's smart 58th-minute drop goal.
A line-out infringement allowed Keatley to kick Munster ahead on 61 minutes as mistakes began to hinder the Ulster effort.
Spurred on by the vocal New Year crowd, Ulster produced late pressure with the first of Jackson's two late penalty chances from near the left touchline falling inches short before he was off target with another difficult kick in the final minute.
Ulster director of rugby Les Kiss: "We gave them enough opportunity to hang in there and our error-rate was too high. It's a disappointed dressing-room.
"Another three or five points would have been ideal before half-time. We probably just weren't clinical enough and probably didn't work hard enough to create pressure."
Munster fly-half Ian Keatley: "That win was huge for us. We were on a bad losing streak.
"A lot of things that we have been talking about, we haven't been doing but we executed tonight.
"It's a fortress to come here and we're delighted to get the ball rolling again."
Ulster: L Ludik; A Trimble, L Marshall, S McCloskey, R Scholes; P Jackson, R Pienaar; K McCall, R Best (capt), W Herbst; L Stevenson, F van der Merwe; R Diack, C Henry, N Williams.
Replacements: R Herring for Williams 71, C Black for McCall 64, R Lutton for Herbst 35, A O'Connor for Stevenson 52, R Wilson for Diack 52, P Marshall for Pienaar 71, S Arnold for L Marshall 54.
Not used: I Humphreys
Munster: L Amorosino; R O'Mahony, Fr Saili, R Scannell, G van der Heever; I Keatley, T O'Leary; D Kilcoyne, M Sherry, BJ Botha; B Holland, M Chisholm; J O'Donoghue, T O'Donnell, CJ Stander (capt).
Replacements: N Scannell for Sherry 54, J Ryan for Botha 71, R Copeland for O'Donnell 56, D Williams for O'Leary 57, Denis Hurley for R Scannell 56.
Not used: M Sagario, S Buckley, T Bleyendaal
Referee: Gary Conway (Ireland).