Eoin McKeon's first try of the season had got Eric Elwood's men off to the perfect start, with Gavin Duffy also going over, but the boot of Paolo Buso and Leonardo Sarto's try kept the Italians in contention throughout.
It didn't take long for Connacht to take the lead as No.8 McKeon raced clear to touch down following a brilliant pass by Duffy with barely two minutes on the clock, the in-form Parks adding the extras.
In the twelfth minute the hosts were penalised for not rolling away but Zebre's Buso, playing at fly-half, missed his penalty attempt, skewing well wide to the right of the posts from a good kicking position.
Four minutes later Buso had the chance to make amends and did just that, bringing his side back to within four points of Connacht after good visiting pressure at the breakdown led to another Zebre penalty.
It had been an entertaining start to the match, with both sides playing on the front foot, and Connacht soon had their second try of the match with 20 minutes played, winger Duffy the man to go over.
Receiving a flat pass from Parks, captain Duffy skipped inside two defenders to score, Parks again converting to increase his side's lead to 14-3.
Buso kicked his second penalty from his third attempt after Connacht were penalised at the scrum for losing their binding.
And two minutes later they moved just a point behind their hosts when winger Sarto got in behind the Connacht defence for his first-ever RaboDirect PRO12 try, with Buso, now finding his range, adding the extras from the conversion for 14-13.
Buso could have given the visitors a half-time lead, but he kicked a 40th-minute penalty wide.
Five minutes after the break, Connacht were relieved to extend their small lead to 17-13 when former Scotland international Parks kept up his perfect record by coolly slotting home a penalty awarded when the visitors were penalised in the scrum.
The Italians continued to frustrate the Irish province though, and there was once again just a point in it at 17-16 when from a Zebre lineout the visitors secured a penalty, which Buso comfortably sent through the posts.
On the hour mark a nervy Connacht sent on prop Ronan Loughney and back row George Naoupu but just three minutes later the former was sent to the sin bin. Loughney had attempted to engineer space for scrum-half Kieran Marmion by pulling a jersey but succeeded only in giving away a penalty.
With ten minutes remaining Zebre took the lead for the first time in the game as centre Garcia assumed kicking duties and knocked over a superb penalty from distance to earn a 19-17 advantage.
Minutes later, Connacht were back to their full complement of players as Loughney returned and Elwood's men immediately made a concerted spell of pressure tell following a lineout, a spirited Zebre resistance forcing Parks to kick a drop goal and put his side back into the lead at 20-19 with five minutes remaining.
Zebre's hopes of getting back into the lead were dealt a blow when flanker Mauro Bergamasco was yellow-carded, ending his involvement in the match, and Parks ensured he had the final say kicking home another penalty for the last act of an enthralling encounter.
|Connacht Rugby Score Card|
|Zebre Score Card|