|Munster (8) 21|
|Tries: Copeland, Williams Cons: Keatley Pens: Keatley 3|
|Ulster (12) 20|
|Tries: Williams Pens: Humphreys 5|
Ulster fly-half Ian Humphreys missed a last-minute conversion as Munster edged a one-point victory in the Pro12 derby.
Four Humphreys penalties put Ulster 12-0 up before Robin Copeland's try helped cut the margin to four at the break.
Duncan Williams's try left Munster 13-12 ahead at Thomond Park before Ian Keatley added eight further points.
But Stephen Archer's sin-binning led to another Humphreys penalty and Nick Williams barged over for a last-minute try before the missed conversion.
After kicking impeccably with five goal kicks out of five, Humphreys would have been expected to land the conversion from a reasonably central position but the Ulster fly-half pushed his effort wide, to his own obvious consternation.
The win means Munster now head the Pro12 table while Ulster's bonus point puts them in second place above previous leaders the Ospreys.
Rory Best started for Ulster as Neil Doak made four changes from the win over the Ospreys while Munster were without their frontline Ireland internationals Paul O'Connell, Peter O'Mahony, Conor Murray and Simon Zebo.
The northerners forged a 12-0 advantage by the 20th minute as Humphreys punished a series of infringements with kicks which included a couple of thumping efforts from long range.
The Munster scrum was under some pressure early on while the home side were also guilty of aimlessly kicking away what limited possession they did have.
Keatley did open Munster's account in the 24 minute as Craig Gilroy was harshly adjudged to have committed a high tackle on Ronan O'Mahony.
Munster's revival continued five minutes later as Duncan Williams's reverse pass found a charging O'Mahony on halfway with possession eventually recycled for Ireland international Copeland to score.
After their second-quarter improvement, Munster took the lead three minutes after the resumption as Williams sniped from the edge of the Ulster 22 to score after the ball had popped out invitingly for him from a scrum.
With Keatley now finding his kicking range, he slotted the difficult conversion and two more penalties from the fly-half increased Munster's lead to 21-12 by the 55th minute as Ulster were being run ragged.
With JJ Hanrahan going close to notching another Munster try, the home side looked totally dominant but the 72nd-minute sin-binning of prop Archer for taking out Franco van der Merwe in a line-out then threatened to turn the match on its head.
Humphreys slotted the resultant penalty and with the man advantage, Ulster were suddenly back in control.
As Ulster laid siege to the opposition line in the closing stages, Roger Wilson was held up before former Munster player Williams burrowed his way over with a minute remaining to leave only a point between the teams.
However, Humphreys's nerve was to fail him as he pushed the left-sided conversion wide and while the visitors gamely attempted further pressure from the kick-off, Munster held on to clinch their seventh straight win in all competitions.
Munster: JJ Hanrahan; G van den Heever, P Howard, Denis Hurley, R O'Mahony; I Keatley, D Williams; J Ryan, D Casey, BJ Botha; Donncha O'Callaghan (capt), B Holland; R Copeland, P Butler, CJ Stander
Replacements: D Kilcoyne for Ryan 49, S Archer for Botha 68, T O'Donnell for Copeland 49, S Dougall, A Smith for Howard 28, F Jones for Hanrahan 66, Botha for Butler 77
Not used: O'Byrne, N Cronin, S Dougall
Ulster: S Olding; L Ludik, D Cave, S McCloskey, C Gilroy, I Humphreys, P Marshall; C Black, R Best (capt), W Herbst; A O'Connor, F van der Merwe; R Wilson, S Reidy, N Williams.
Replacements: R Herring for Best 64, A Warwick for Black 60, D Fitzpatrick for Herbst 60, L Stevenson for O'Connor 59, R Diack for Reidy 60, M Heaney for Marshall 56, M Allen, P Nelson for Ludik 64
Referee: Ian Davies (Wales)