Munster ground out a crucial derby win over Connacht to move up to eighth in the BKT United Rugby Championship table.
Having been beaten by Connacht in Galway last month, Graham Rowntree's men righted that wrong as they scored two tries in each half to register their third win of the season.
The sides were deadlocked at 10-10 at the end of an error-strewn first half, tries from Calvin Nash and Roman Salanoa cancelling out a Byron Ralston intercept and a Jack Carty penalty.
Connacht failed to utilise a strong wind advantage during that first period and they were punished after the restart, replacement front-rowers John Ryan and Niall Scannell touching down, the latter’s score coming while John Porch was in the sin bin.
A late Kieran Marmion try gave Connacht a losing bonus point but it was another patchy performance from Andy Friend’s men, who impressed in the scrum yet struggled in phase play, as they gifted Munster tries and lost their discipline in the second half.
Munster, meanwhile, continue to show a marked improvement in their attacking game. They carved Connacht open on a number of occasions with slick handling and running lines, with Joey Carbery impressing at out-half and centre Antoine Frisch producing some lovely touches on his first URC start.
Connacht had won three of their last four meetings with Munster but they struggled to adapt to the windy conditions early on, with hooker Dave Heffernan overthrowing two lineouts.
Carty opened the scoring after a scratchy 10 minutes but Munster’s response was almost immediate after the visitors made a hash of the restart.
Craig Casey caught Connacht napping when he sniped down the blindside off a scrum and put Calvin Nash over in the corner for a try. Joey Carbery was unable to convert.
Connacht’s frustration levels further grew when Peter O’Mahony sacked their five-metre lineout drive, and some inaccurate kicking was being gratefully accepted by the Munster backs, Mike Haley a willing runner from his own 22.
However, Munster were guilty of overplaying at times and they were punished on 26 minutes for failing to deal with a harmless kick by Blade into their 22. Ralston read Haley’s pass inside to Carbery and raced behind the posts for his first Connacht try.
Carty converted and when Connacht won their second scrum penalty of the evening, the momentum appeared to be shifting. But they shot themselves in the foot once again, with the scrum penalty reversed after the pack sparked a skirmish.
A litany of errors and scoring chances in the Connacht 22 followed. Alex Wootton intercepted Carbery’s pass, only to then offload to a former team-mate, while O’Mahony and Frisch were denied in opposite corners.
O’Mahony left the pitch for a HIA, from which he did not return, and Munster drew level moments later when a powerful lineout drive resulted in Salanoa scoring his first try since March 2021.
Munster pressed for a third try before half time, a Tadhg Beirne turnover giving his side possession inside the opposition half, but Connacht’s goal-line defence held firm to leave the sides deadlocked at the break.
Connacht’s work at the scrum continued to go unrewarded after the restart when Carty failed to find touch from a penalty, and they were reduced to 14 players when Carbery scythed through the midfield and chipped over John Porch, only to be taken out by the full-back.
Munster shifted up a gear and lay siege to the Connacht line. Casey was held up over the line but the pressure eventually told on 58 minutes when replacement John Ryan barged over from close range.
Connacht, pinned inside their own half, completely lost their discipline and Munster continued to kick into the corner. It resulted in a try for another replacement on 65 minutes, Niall Scannell finishing off a driving lineout to clinch the bonus point.
The Westerners did produce one late purple patch, with Marmion spotting an unguarded ruck and diving over, but a Carty knock-on ended their hopes of sharing the spoils.
Munster: Mike Haley; Calvin Nash, Antoine Frisch, Rory Scannell, Shane Daly; Joey Carbery, Craig Casey; Josh Wycherley, Diarmuid Barron, Roman Salanoa; Jean Kleyn, Tadhg Beirne; Peter O'Mahony (capt), John Hodnett, Alex Kendellen.
Replacements: Jack O'Donoghue for O’Mahony (36), Jeremy Loughman for Wycherley (48), John Ryan for Salanoa (48), Niall Scannell for Barron (53), Gavin Coombes for Kendellen (53), Edwin Edogbo for Kleyn (65).
Connacht: John Porch; Ryron Ralston, Tom Farrell, Bundee Aki, Alex Wootton; Jack Carty, Caolin Blade; Denis Buckley, Dave Heffernan, Finlay Bealham; Josh Murphy, Gavin Thornbury; Cian Prendergast, Conor Olvier, Jarrad Butler.
Replacements: Paul Boyle for Butler (51), Oisín Dowling for Murphy (51), Jack Aungier for Bealham (51), Conor Fitzgerald for Ralston (58), Peter Dooley for Buckley (59), Shane Delahunt for Heffernan (64), Kieran Marmion for Blade (64), Niall Murray for Thornbury (64).
Referee: Gianluca Gnecchi (FIR).