After three games without a victory Steve Tandy's side returned to winning ways to boost their chances of a top-four finish.
Outside half Sam Davies, son of former Scarlets and Gloucester coach Nigel, kicked 21 points and set up a try for number eight Dan Baker to seal a much-needed win.
A first-half yellow card for forward Dave O'Callaghan proved to be costly for the visitors as the home side scored 11 of their 26 points while Munster were down to 14 men.
Munster's reply came from late tries by Donnacha Ryan and Keith Earls but the outcome was never really in doubt by that stage.
A bright start from the Ospreys saw Davies kick them ahead with a penalty after five minutes.
They dominated territory and possession in the opening quarter but were struggling to turn their advantage into points on the board.
It was the 22nd minute before Davies added to their lead with a second penalty.
The key incident of the first half came when Munster flanker O'Callaghan was sent to the sin bin for a high tackle on Ospreys full-back Dan Evans.
Within 90 seconds the Ospreys had their opening try when they moved the ball wide and Baker collected Davies' long pass and went over in the corner.
The young fly-half missed the conversion but was able to nudge the Ospreys further in front with his third penalty minutes later.
Straight from the restart the home side were back on the front foot with Justin Tipuric, making his 100th appearance for the Welsh region, making 30 metres with a fine break down the middle.
It put Davies into drop goal range and he slotted his effort straight down the middle to give the Ospreys a 17-0 lead at the break.
Munster tried to force their way back into the contest at the beginning of the second period but when they got into Ospreys territory the home side did well to defend a driving line-out and clear.
With Munster back up to 15 players the game returned to a tight affair with much of the rugby being played in the middle of the field.
Davies kicked a long-range penalty just after the hour mark to keep the scoreboard ticking over for the Ospreys and the 21-year-old was managing the game well for the hosts.
Munster finally got success from a driving line-out nine minutes from the end when replacement Ryan was pushed from close range for their opening try.
Davies added his fifth penalty for the Ospreys on 75 minutes before less than 90 seconds later Earls crossed in the corner for Munster's second score.
But it proved to be nothing more than a consolation when Davies kicked his sixth penalty at the death.