Connacht edged out Munster to claim inter-provincial bragging rights in an ill-tempered derby at the Sportsground.
Bundee Aki's converted 58th-minute try proved the decisive moment of a scrappy contest in which referee Chris Busby issued four yellow cards.
Munster led at the break courtesy of an Andrew Conway try but were on the back foot for most of the second half.
The sides are now level on 20 points with Munster ahead in the URC standings due to a superior points difference.
Connacht lost captain Jack Carty to injury in the first half with Conor Fitzgerald coming on and later landing the conversion that put his side in front with a quarter of the match remaining.
Having fallen to a late two-point defeat at Thomond Park when the sides met in October, Connacht were determined to see out the win and did so with relative comfort as Munster struggled to exit their own half.
The visitors enjoyed the better of the opening 40 minutes, taking the lead after Carty and Ben Healy traded early penalties when Conway touched down just before the dead-ball line after Healy charged down Mack Hansen's kick.
Hansen, on his first start in a month, made two crucial tackles in the corner to stop Conway extending Munster's lead as the visitors applied pressure aided by a man advantage after Oisin Dowling was sent to the bin as Connacht's breakdown infringements mounted up.
However, roared in by 3,000 fans the hosts soaked up the pressure and held firm, winning a penalty just before the whistle to relieve the pressure before tempers boiled over on the way into the changing rooms with Healy and Shane Delahunt both shown yellow for their part in the fracas.
Connacht's chances in the opening half were few and far between but they enjoyed far more opportunities after the break as Fitzgerald sent a kickable penalty wide before Kieran Marmion picked off Craig Casey's pass and ran nearly the full length of the pitch only to be well tackled by Mike Haley short of the line.
The teams had only just been restored to their full compliments when Chris Farrell was sent to the bin for a hit to the head of Tom Farrell.
Connacht wasted no time in making good on their numerical advantage, with Aki joining the back of a rolling maul to crash over for the crucial score.
It is a second league defeat of the season for Munster, who have played fewer games than the teams above them in the table.
Connacht: O'Halloran; Porch, Arnold, Aki, Hansen; Carty (capt), Marmion; Burke, Heffernan, Bealham, Dillane, Dowling; Prendergast, Oliver, Butler.
Replacements: Delahunt, Tuimauga, Robertson-McCoy, Masterson, Papali'i, Devine, Fitzgerald, Masterson.
Munster: Haley; Conway, Farrell, de Allende, S Daly; Healy, Casey; Kilcoyne, N Scannell, Archer, Kleyn, F Wycherley; O'Donoghue (capt), Kendellen, Coombes.
Replacements: Barron, Loughman, Knox, Ahern, J Daly, Cronin, Crowley, R Scannell.