Munster delayed the Ospreys' title party for another day at least by winning at Newport's Rodney Parade.
Dragons (3) 8
Munster (3) 24
Tries: Quinlan, Kelly, Payne
Cons: Burke (3)
Defeat would have handed the title to the Ospreys, but three second half tries ensured the Irishmen are still in the Celtic League running.
Alan Quinlan got the opening try on 57 minutes before John Kelly added another converted score five minutes later.
Kevin Morgan crossed for the Dragons to close the gap to 8-17, but Shaun Payne's touchdown took Munster clear.
There was some doubt whether Payne had grounded the ball properly as he beat Morgan to Paul Burke's grubber kick, but referee Rob Dickson did not hesitate to award the try.
Burke added his third conversion.
A few minutes earlier, Morgan's try had brought the Dragons back into contention as the match finally came into life.
Centre Sione Tuipulotu made the crucial break and timed his pass perfectly for Morgan to finish a fine move and claim his 10th try of the season.
After a dour first half ended with a penalty apiece for Ronan O'Gara and Ceri Sweeney, Munster took a deserved lead when flanker Quinlan forced his way over under the posts.
Kelly's score soon after resulted from a Dragons turn-over, epitomising the home side's error-strewn display.
A long, looping pass opened a huge gap in the Dragons defence, allowing winger Kelly to run in unopposed under the posts.
The victory came at a cost, though, as fly-half O'Gara left the field in the first half with a knee injury sustained in an innocuous clash with Dragons flanker Jamie Ringer.
O'Gara is now in danger of missing his side's Heineken Cup quarter-final against Biarritz next week.
Dragons: K Morgan; G Chapman, P Montgomery, S Tuipulotu, B Breeze; C Sweeney, J Ireland; A Black, S Jones, R Thomas, I Gough, L Charteris, J Ringer, J Forster (capt), M Owen.
Replacements: J Bryant, D Griffiths, R Snow, J Richards, C Anthony, P Sidoli, R Oakley.
Munster: S Payne; J Kelly, M Mullins, J Holland, A Horgan; R O'Gara, P Stringer; M Horan, F Sheahan, F Roche, D O'Callaghan, T Hogan, A Quinlan, D Wallace, J Williams (capt).
Replacements: J Blaney, E McGovern, T Bowman, S Keogh, F Murphy, P Burke, P Devlin.
Referee: Rob Dickson (SRU).