Connacht moved level on points with Pro12 leaders Leinster thanks to a bonus-point win over Munster at the Sportsground.
Simon Zebo and James Sherry tries saw Munster lead 14-6 but Niki Adeolokun’s score and a penalty try helped Connacht move ahead 20-14 by the interval.
Adeolokun and Finlay Bealham added touchdowns after the break, while Shane O’Leary kicked a total of 15 points.
The result effectively ended Munster’s hopes of a semi-final play-off place.
They are seventh in the table and face a battle to secure a berth in the Champions Cup next season.
Connacht, who leapfrogged Glasgow, completed a season double over their Irish interprovincial rivals for the first time, and a spot in the last four of the competition now appears certain.
Victory came as a boost to Pat Lam’s men after Ulster ended their six-match unbeaten run in the competition, followed by a 33-32 defeat by Grenoble in the last eight of the European Challenge Cup.
A stray Munster hand in the ruck allowed O’Leary to put Connacht ahead after eight minutes, but Zebo – Munster’s record try-scorer – went over on his 100th appearance.
Although O’Leary reduced the deficit to one point with a penalty, Munster’s superb driving maul left Connacht scrambling backwards, and hooker Sherry touched down.
With Anthony Foley’s side down to 14 men after James Cronin saw yellow, Connacht made their numerical advantage count.
The superb Bundee Aki burst through Munster’s scrambled defensive line before moving the ball to Finlay Bealham, who sent Adeolokun racing under the posts. O’Leary’s easy conversion brought Connacht within a point again.
Foley’s men found themselves under severe pressure at the scrum and, when Billy Holland was sent to the sin-bin, Connacht made no mistake with a two-man advantage in the pack.
Referee Ben Whitehouse marched Munster under the posts for a penalty try that O’Leary converted for a six-point half-time lead.
When Robbie Henshaw dropped a cute kick in behind Munster, Adeolokun profited from an awkward bounce to touch down, although O’Leary missed the conversion.
Ultan Dillane’s powerful carry put Connacht on the front foot deep in opposition territory and, when the ball was recycled, Bealham ran over.
O’Leary followed up the conversion with a penalty with the last kick of the game.
Connacht: R Henshaw; N Adeolokun, B Aki, P Robb, M Healy; S O’Leary, K Marmion; D Buckley, T McCartney, F Bealham; U Dillane, A Muldowney; S O’Brien, E McKeon, J Muldoon (capt).
Replacements: J Harris-Wright, R Loughney, JP Cooney, A Browne, J Connolly, J Cooney, J Carty, F Carr.
Munster: S Zebo; D Sweetnam, F Saili, R Scannell, K Earls; J Holland, C Murray; J Cronin, M Sherry, S Archer; D Ryan, B Holland; CJ Stander (capt), T O’Donnell, J O’Donoghue.
Replacements: N Scannell, D Kilcoyne, J Ryan, R Copeland, J Coghlan, T O’Leary, I Keatley, A Conway.