Munster set up an all-Irish Magners League final against Leinster on 28 May as they held off the Ospreys.
Danny Barnes' try helped Munster lead 8-3 at the break and the home team's lead should have been greater.
Dan Biggar's second penalty meant Munster led only 11-6 after 56 minutes as the holders briefly threatened.
But Barnes notched his second try a minute later after charging down a Richard Fussell clearance and Fussell's try came too late for the Ospreys.
In front of a surprisingly small attendance at Thomond Park, Munster produced early pressure and Keith Earls looked certain to run in a fourth-minute try but he spilled possession inches short of the line after a superb Fussell tackle.
A sloppy Munster line-out gifted a drop goal attempt to James Hook but the Perpignan-bound back missed the straightforward chance.
Ronan O'Gara kicked Munster into the lead in the 14th minute from in front of the posts after some illegal handling on the floor from Ospreys prop Paul James.
Lifeimi Mafi should have notched Munster's opening try a minute later but he unwisely attempted a pass to Earls when a slide-in would surely have seen the Tongan secure the score.
Munster were camped in the Ospreys half but still only led 3-0 after 20 minutes as O'Gara hit the woodwork with another penalty.
The Ospreys defence continued to produce heroics but the dam eventually burst in the 31st minute as youngster Barnes ran in the game's first try after fast hands from Doug Howlett and Felix Jones.
After O'Gara missed the conversion, the Ospreys quickly moved back to within a score of the home side as Biggar kicked a penalty from 45 metres.
Munster produced yet more pressure before the break with David Wallace being held up after he had crossed the Ospreys line as the Irish side turned down a penalty chance as they sought a second try.
By that stage, Hook had departed for the Ospreys because of a suspected shoulder injury with Ashley Beck coming on.
The Ospreys had brought little to the party in the first half - with their line-out and scrum both a mess - but they were only five points in arrears at the break.
Munster continued to dominate after the restart and O'Gara increased their lead following Ospreys replacement Richard Hibbard's sin-binning for a blatant offside.
The Ospreys felt that they should have been awarded a penalty in front of the Munster points in the 52nd minute after an apparent late tackle on replacement Jerry Collins but referee Nigel Owens waved aside the Welsh team's protests.
The visitors were finally starting to threaten Munster and Biggar cut the margin to only five points with a 56th-minute penalty.
But the Ospreys player of the year Fussell endured a horrible moment a minute later as Barnes charged down the attempted clearance and ran in his second try under the posts.
With O'Gara adding the extras, Munster were suddenly 12 ahead and the game was over as a contest.
Fussell redeemed himself to a extent three minutes later as his brilliant tackle denied a certain Wallace after sloppy Ospreys defending.
The Ospreys full-back then ran in 76th-minute try to cut Munster's lead to seven but despite a nervy five minutes of injury-time, the home team held on to set up the decider against Leinster at Thomond Park in two weeks.
Munster: F Jones, D Howlett, D Barnes, L Mafi, K Earls, R O'Gara, C Murray; M Horan, D Varley, J Hayes, D O'Callaghan, P O'Connell capt, D Ryan, D Wallace, J Coughlan.
Replacements: S Zebo for Barnes 74, P Stringer for Murray 56, W du Preez for Horan 56, M Sherry for Varley 56, S Archer for Hayes 62, D Leamy for Coughlan 61, N Ronan for Leamy 74.
Not Used: Warwick.
Ospreys: R Fussell, T Bowe, A Bishop, J Hook, N Walker, D Biggar, R Webb; P James, H Bennett, A Jones, I Gough, A Wyn Jones (cpt), R Jones, J Tipuric, J Thomas.
Replacements: A Beck for Hook 39, T Isaacs for Webb 54, R Hibbard for Bennett 48, C Griffiths for A Jones 72, J Collins for Gough 48, M Holah for R Jones 64, T Smith for Tipuric 74.
Not Used: Bevington.
Referee: N Owens (Wales)