A spirited display from a largely inexperienced Ulster side saw them secure a deserved victory over Munster.
Ulster had already clinched fourth position in the Pro12 and they will now travel to Dublin to face Leinster on a high after this win at Thomond Park.
The sides were level at half-time, with Duncan Williams scoring a try for Munster and Michael Heaney for Ulster.
Sean Dougall was the only second-half try-scorer but James McKinney's perfect kicking record saw his side through.
Leinster will host Ulster at the RDS in their semi-final play-off next Saturday night, 17 May, with Glasgow entertaining Munster at Scotstoun a day earlier.
Pre-match favourites Munster earned just reward for their early domination when Ian Keatley knocked over a penalty after 11 minutes.
Three minutes later scrum-half Williams completed a fine flowing passing movement by diving over for his third try in the competition.
Casey Laulala, Keatley and James Downey all played their part and Williams was left with a relatively straightforward run into the corner, Keatley converting.
The visitors responded by scoring at the opposite end of the pitch in the 16th minute, Heaney stretching over the line to touch down for his first try for the northern province.
The diminutive scrum-half made the initial break, then fed Allen, who broke clear and provided the return pass for Heaney, who shrugged off a Munster tackle before scoring the try.
McKinney made sure of the additional two points by kicking the conversion, but soon after Mark Anscombe's side lost number eight Nick Williams to medial knee ligament damage.
Fly-half McKinney's second successful penalty brought the sides level with five minutes of the opening half remaining and the Rotherham-bound number 10 added a further penalty after the break to nudge his side ahead.
Ulster's lead was short-lived however as flanker Sean Dougall crossed for a 49th-minute try, Keatley adding the extras.
Keatley kicked through and when Ulster failed to secure possession, Dougall pounced on the loose ball to clinch a five-pointer.
McKinney replied with a well-struck penalty to reduce the deficit to one point and maintained his 100% record by knocking the ball between the posts again to make the score 19-17.
Munster exerted late pressure but replacement JJ Hanrahan was wide with a drop-goal attempt and then his last-gasp penalty from the half-way line, after Sean Doyle had infringed in the scrum, fell just short.
Munster: Felix Jones; Gerhard Van Den Heever, Casey Laulala, James Downey, Simon Zebo; Ian Keatley, Duncan Williams; Dave Kilcoyne, Damien Varley (capt), John Ryan; Dave Foley, Paul O'Connell; Paddy Butler, Sean Dougall, James Coughlan. Replacements: James Cronin for Kilcoyne (60), Billy Holland for Foley (78), Tommy O'Donnell for Coughlan (53), Conor Murray for Williams (58), JJ Hanrahan for Keatley (50), Keith Earls for Zebo (53).
Not Used: Quentin MacDonald, Alan Cotter.
Ulster: Craig Gilroy; David McIlwaine, Michael Allen, Stuart McCloskey, Rory Scholes; James McKinney, Michael Heaney; Callum Black, Rob Herring, Andrew Warwick; L Stevenson, Dan Tuohy (capt); Mike McComish, Sean Doyle, Nick Williams. Replacements: Kyle McCall for Herring (75), Bronson Ross, Adam Macklin for Warwick (59), Neil McComb for Tuohy (53), Conor Joyce for Williams (34), David Shanahan for Heaney (75).
Referee: Nigel Owens (Wales).