Munster left their comeback too late as their title ambitions were dealt a blow by a resurgent Ospreys side.
Two tries in the final 10 minutes from Donnacha Ryan and Keith Earls restored some respectability to the scoreline for Munster, but they had been outplayed by the four-time Pro12 winners.
Guided by 21-year-old Sam Davies, who kicked 21 points, the Ospreys bounced back from a run of three games without a win to get their own play-off charge back on track.
A first-half yellow card for Munster flanker Dave O’Callaghan proved to be the pivotal moment as it allowed the Ospreys to score 11 points, including their only try through number eight Dan Baker.
Munster head coach Anthony Foley said: “Our lack of control and ill-discipline cost us dearly.
“We conceded their only try of the game when we were down to 14 men but I can’t fault the referee because I thought he was very fair.
“If you can’t control the game and allow them into good positions then you expect to get punished by good sides.”
As against Leinster the previous week, the Ospreys started strongly and Davies kicked them ahead with an early penalty.
Davies got a second after 22 minutes but it was not until O’Callaghan was sent to the bin for a dangerous tackle on Ospreys full-back Dan Evans just after the half-hour mark that the game opened up.
The Ospreys immediately had Munster under pressure by moving the ball across the field and outside-half Davies threw a long pass out wide for Baker to go over in the corner.
Davies missed the conversion but slotted a third penalty minutes later as they pressed home their one-man advantage.
From the restart Justin Tipuric broke through the middle deep into the Munster half and when the ball was recycled Davies kicked a drop goal to give the home side a 17-0 half-time lead.
Munster tried to force their way back into the game after the break and when the Ospreys were penalised outside half Ian Keatley was able to kick them into a good position.
But the Ospreys defended the resulting driving line-out well and when Munster stopped going forward they lost the advantage and
the home side were able to clear.
With O’Callaghan back on the field it returned to a tight contest but Davies kept the scoreboard ticking over for the Ospreys.
The travelling Munster support finally got something to cheer about nine minutes from the end when Ryan was driven over from a line-out.
Earls got Munster’s second try in between two more Davies penalties but it was little more than a consolation for the visitors.
Scorers — Ospreys: S Davies 6 pens, drop-goal, D Baker try; Munster: D Ryan, K Earls try each, Keatley con.
Ospreys: D Evans (B John 40); T Grabham, J Spratt, J Matavesi, H Dirksen, S Davies, T Habberfield (M Roberts 69); R Bevington (N Smith 47), S Otten (M Dwyer 70), A Jarvis (D Arhip 47), L Peers (R Thorton 47), T Ardron, J King, J Tipuric (capt), D Baker (M Allen 72).
Munster: JJ Hanrahan (A Smith 51); F Jones, K Earls, D Hurley (capt), R O’Mahony (A Conway 70); I Keatley, D Williams; D Kilcoyne (J Ryan 51), E Guinazu (K O’Byrne 60), BJ Botha (S Archer 60), Donncha O’Callaghan (D Ryan 60), B Holland, Dave O’Callaghan, S Dougall (J O’Donoghue 48), CJ Stander.
Referee: M Mitrea (Italy).