The bookies had given Zebre a 15-point handicap ahead of this Sportsground tussle, but it took a late Dan Parks penalty and drop-goal to seal the win for the home side.
Connacht looked to have the win wrapped up at the break, but the boot of Daniel Halangahu and a splendid try from Ruggero Trevisan almost gave Zebre their first ever competitive victory.
In front of the watching Declan Kidney, Robbie Henshaw wasted little time in catching the eye as his fourth-minute line-break from deep inside his own half was only halted by a last-gasp ankle tap by Trevisan.
And despite their lively start, Connacht didn't impact the scoreboard until the 11th minute when Parks split the posts with a penalty from the 10-metre line after the Zebre hooker came in the side of a ruck.
But straight from the restart Connacht allowed the Italians to draw level when Dave McSharry was isolated after the tackle and the late-arriving cover was penalised for hands in the ruck.
Out-half Halangahu slotted the penalty, but the home side took the lead again five minutes later when Zebre were penalised for failing to roll away from the tackle.
Without a win all season, confidence must have been low in the Italian camp ahead of their trip to the west of Ireland and 15 minutes from the break, their brittle belief took another blow when Parks slotted a drop-goal from 30 metres – made all the easier with a penalty advantage in the bag.
The hosts were dominant at the set-piece and they continually pinned Zebre back in their own half with stolen line-outs and penalties won at the scrum.
But against the run of play, Connacht coughed up another needless penalty for failure to retreat behind their own kicker and Australian-born Halangahu made it 9-6 after 29 minutes.
However, Zebre were proving just as generous and when Giovanni Venditti failed to release the ball after the tackle deep in his own territory, Parks kicked the penalty to give Connacht a 12-6 half-time lead.
The introduction of former Munster tighthead Dave Ryan did little to shore up the creaking Zebre scrum and after they immediately conceded a penalty on halfway, Parks edged Connacht to within touching distance of the Zebre line.
After yet another penalty concession in the line-out, Connacht opted for a scrum and after two penalty resets, French referee Pascal Gauzere awarded them the deserved penalty try in the 46th minute.
Parks added the simple conversion, but once again, after a score of their own, Connacht gave Zebre another three points through a Halangahu penalty. And three minutes later he repeated the dose from wide on the left to make it 19-12.
Zebre, experiencing their best period in the game, started to dominate Connacht as unforced efforts from the home side almost saw their try line breached.
Parks was forced to kick to touch after his own sloppy handling and on two occasions Zebre No 8 Filippo Ferrarini almost made it across for their opening try. But they didn't have long to wait for that score, as a blistering move off the back of a Zebre scrum saw Trevisan touch down in the corner on the hour mark.
Halangahu missed the conversion from the touchline, which would have drawn Zebre level, and Parks missed the target himself three minutes later after another powerful Connacht scrum.
Zebre briefly took the lead from the boot of the Australian, only for Parks to seal the win for Connacht with his fourth penalty of the game and a late drop-goal.
Connacht – R Henshaw; T O'Halloran, E Griffin (D Poolman 60), D McSharry, F Vainikolo; D Parks, K Marmion (P O'Donohoe 71); B Wilkinson, J Harris-Wright (E Reynecke 71), N White (R Loughney 71); M Swift, M McCarthy; M Kearney, J O'Connor (E Grace 76), A Browne.
Zebre – T Tebaldi (S Pace 76); G Venditti, R Quartaroli, M Pratichetti, R Trevisan; D Halangahu, A Chillon (L Martinelli h-t); S Perugini (M Aguero 49), D Giazzon (C Festuccia h-t), L Redolfini (D Ryan h-t); M van Vuuren, J Sole, E Caffini (N Belardo 76), M Bergamasco, F Ferrarini (A Manici 60).
REF – P Gauzere (France).