Outstanding Dan Parks kicked 23 points as a superb defensive display helped clinical Connacht earn a crucial Heineken Cup win over Zebre in Parma.
Zebre had 60% of the first-half possession and threatened the Connacht line on several occasions but found themselves 19-3 down at the break.
Parks kicked 14 first-half points with George Naoupu notching a try.
Veteran Parks added three second-half penalties before Mata Fifita's late try as Connacht repelled more pressure.
Connacht needed the victory to stay in touch in Pool 3 after their narrow home defeat by Saracens last week, while Zebre had been hammered 38-5 by Toulouse in their opener.
Two early Parks penalties were split by three points from his opposite number Luciano Orquera as Connacht led 6-3 before the visitors had to withstand intense pressure from the home side.
A huge clearance from Samoan international James So'oialo helped relieve the Zebre assault while Parks also produced a couple of magnificent relieving kicks to touch.
After Zebre had failed to make their early territorial advantage count, they were hit by a hammer blow in the 30th minute as a clever shortened line-out move allowed Naoupu to crash over from close range, holding off Matias Aguero's tackle to reach over the line.
The Irish side went close to notching a second touchdown moments later as the impressive So'oialo thought he had got the score, but Danie Poolman was correctly adjudged to have had a foot in touch before passing to the Samoan.
Park added two more penalties before the break to make it five successful kicks out of five in the opening period as Connacht went in 16 points clear.
The pattern was repeated in the second half as Zebre had little return for intense pressure immediately after the restart.
Arguero thought he had scored a Zebre try but was adjudged to have been held up before Orquero did cut Connacht's lead to 13 with his second penalty.
However, the game was over by the hour mark as Parks slotted two more penalties in three minutes to extend their lead to 19 points.
Fifita ran in Connacht's second try with eight minutes left and Parks was only denied a 100% record from his nine kicks at goal as his difficult conversion struck the woodwork.
Zebre: Ruggero Trevisan, Dion Berryman, Tommaso Iannone, Gonzalo Garcia, David Odiete, Luciano Orquera, Brendon Leonard, Matias Aguero, Tommaso D'Apice, Dario Chistolini, Mike Van Vuren, Marco Bortolami (capt), Mauro Bergamasco, Dries van Schalkwyk, Samu Vunisa,
Replacements: Alberto Chillon for Trevisan 70, Kameli Ratuvou for Garcia 58, Leonardo Sarto for Odiete 41, Andrea De Marchi for Aguero 61, Davide Giazzon for T D'Apice 51, Luciano Leibson for Chistolini 60, Emiliano Caffini for Bortolami 67, Filippo Cristiano for Bergamasco 73
Connacht: James So'oialo, Danie Poolman, Robbie Henshaw, Craig Ronaldson, Matt Healy, Dan Parks, Kieran Marmion, Brett Wilkinson, Sean Henry, Rodney Ah You, Michael Swift (capt), Craig Clarke, Andrew Browne, Jake Heenan, George Naoupu.
Replacements: Gavin Duffy for So'oialo 42, Mata Fifita for Henshaw 65, Paul O'Donohoe for Marmion 70, JP Cooney for Wilkinson 66, Jason Harris-Wright for Henry 44, Ronan Loughney for Ah You 45, Ally Muldowney for Swift 54, Dave McSharry for Heenan 65