|Munster (19) 32|
|Tries: Conway, Copeland, van den Heever, Hurley, Zebo Pens: Keatley Cons: Keatley 2|
|Ulster (18) 28|
|Tries: Gilroy 2, Williams, Tuohy Pens: Jackson Cons: Jackson Drop goals: Jackson|
Ulster slipped to a third away Pro12 defeat of the season despite a much-improved performance at Munster.
The lead changed hands five times in an entertaining inter-pro derby with both sides securing four-try bonus points.
Munster led 19-8 at the break with Andrew Conway, Robin Copeland and Gerhard van den Heever tries.
Craig Gilroy (2) and Nick Williams kept Ulster in touch before Munster pulled away with Denis Hurley and Simon Zebo's second-half tries at Thomond Park.
Ulster responded with a Dan Tuohy try after 68 minutes to set up a thrilling finish but Munster showed stubborn resistance to claim a five-point victory which moved them up to second place in the table.
Ulster, beaten by Glasgow and Llanelli in both previous away fixtures this season, got off to the perfect start with Gilroy's try in the third minute - the first of six tries in an open first period.
Stuart McCloskey dispossessed Francis Saili and Darren Cave showed good awareness to release Gilroy who sprinted down the wing for his third try of the season.
Missed tackles costly for porous Ulster
Ulster's defensive frailties were soon exposed, however, when Gilroy's missed tackle led to Conway crossing for Munster's equalising try after 17 minutes.
Keatley added the extras to put Munster in front, and despite missing three first-half conversions into a difficult wind, Paddy Jackson nailed a penalty to restore Ulster's slender lead.
The visitors had control when in possession and recycled the ball through several phases with Gilroy capitalising with an easy second try after 27 minutes.
Ulster led 13-7 but conceded 12 points without reply with missed tackles in midfield allowing Copeland and South African Van den Heever to score tries.
An open first half concluded with Williams rumbling over after a good set-piece play to reduce Ulster's deficit to 19-18 at the interval.
The lead changed hands for a fourth time six minutes after the restart when Jackson, now with a strong wind at his back, split the posts with a drop goal.
Keatley's penalty put Munster back in front and the home side's influence grew in the third quarter with CJ Stander impressive at the breakdown.
Ulster misjudged a high ball allowing Conway and Hurley to combine for the latter to score Munster's fourth try, securing their bonus point in the 61st minute.
Munster made the most of having numbers out wide with Zebo scoring their fifth try five minutes later, but Ulster rallied again with the backs combining to release Tuohy to score in the corner and make sure of a fourth-try bonus point for the visitors.
Jackson added the extras and while Ulster pushed hard for a winning try in the last 10 minutes, the home side held on.
Munster: Andrew Conway; Simon Zebo, Francis Saili, Denis Hurley, Gerhard van den Heever; Ian Keatley, Tomás O'Leary; James Cronin, Mike Sherry, BJ Botha; Dave Foley, Mark Chisholm; CJ Stander (capt), Jack O'Donoghue, Robin Copeland.
Replacements: Donnacha Ryan for Foley (50), Duncan Casey for Sherry (55), John Ryan for Cronin (67), Jordan Coghlan for O'Donoghue (70), Rory Scannell for Hurley (70).
Not used: Ronan O'Mahony, Mario Sagario, Duncan Williams.
Ulster: Peter Nelson; Craig Gilroy, Darren Cave, Stuart McCloskey, Andrew Trimble; Paddy Jackson, Paul Marshall; Andrew Warwick, Rob Herring (capt), Wiehahn Herbst, Lewis Stevenson, Franco van der Merwe, Roger Wilson, Sean Reidy, Nick Williams.
Replacements: Sam Arnold for Trimble (41), Callum Black for Warwick (50), Chris Henry for Reidy (53), Dan Tuohy for van der Merwe (62) John Andrew for Herring (67), Ricky Lutton for Herbst (67).
Not used: Paul Rowley, Ian Humphreys.
Referee: Marius Mitrea