Munster had led 14-3 after 20 minutes but a strong second-half performance from Dan McFarland’s side where they cleaned up their scrum and breakdown got Ulster on the front foot and Nick Timoney’s try on 68 minutes was enough to decide the Irish derby.
It was the visitor’s that opened the scoring after eight minutes.
Ulster conceded three scrum penalties in the shadow of their own posts and on the fourth set-piece Munster scrum-half Craig Casey picked up at the base before evading Billy Burns’ attempted tackle and darted over with Jack Crowley adding the conversion.
Ulster should have responded five minutes later following their first sustained period of pressure in the Munster 22.
Nathan Doak produced quick ball from a ruck feeding Burns, the out-half shipped it to Ethan McIlroy, who ignored an overlap to go himself, but was stopped on the line by hooker Diarmuid Barron and full-back Shane Daly.
The full-back’s tackle was deemed illegal by referee Frank Murphy and Daly was yellow carded with McIlroy leaving the pitch due to injury.
Doak slotted over the penalty.
Munster made light of their numerical disadvantage and replied immediately with a second try from the restart after Ulster conceded a penalty.
From the line-out Munster moved the ball at speed, winger Calvin Nash cut through the defence, number eight Gavin Coombs carried close to the line before Casey exploited a gap for his second touchdown on 19 minutes. Crowley added the conversion.
Jacob Stockdale got Ulster back in the game with a try on 27 minutes.
Ulster probed at the Munster defence with some big carries from David McCann during a period of patient build up, Munster committed too many defences allowing Burns to put in a clever cross field kick for the Irish winger to race onto and dot down in the corner but Doak couldn’t convert.
There was no further scoring in the first-half and Munster went into the break with a 14-8 lead.
Doak cut the deficit to three points with a penalty five minutes after the restart as Munster were punished for not rolling away at the ruck.
Ulster wasted an opportunity to tie the game when they turned down a kickable penalty to go to the corner but were punished for delaying the throw and Munster cleared.
Doak did level the scores with a long range penalty on 63 minutes.
Rob Baloucoune had a try disallowed on 66 minutes. The ball was kicked to the corner, Ulster took a quick line out and the winger went over, but it was chalked off.
Ulster were not to be denied two minutes later though as from a scrum in the Munster 22, Timoney picked up from the base and powered over with Doak adding the extras.
Munster spurned a chance to force a draw in the last minute.
They forced a penalty on the Ulster five metre line, decided to take a tap and go and the red shirts piled over the try line, but skipper Iain Henderson – on his return from World Cup duty – was unable to prevent the ball from being grounded.