Eoin McKeon's first try for the province had Connacht ahead within two minutes, and Gavin Duffy also touched down for a 14-3 lead.
But only a point separated the sides at the break, with Paolo Buso kicking his second penalty and converting Leonardo Sarto's 31st-minute try.
Parks and Buso swapped penalties before a 71st-minute penalty from Gonzalo Garcia had the Italians within touching distance of their first victory.
However, despite being below par, Connacht showed their resilience as Parks' right boot ensured they finished on top at the end of a competitive encounter.
Brimming with confidence after beating the Ospreys and Cardiff Blues in recent weeks, Eric Elwood's men had zoomed into an early lead against the bottom side.
Brian Murphy put Duffy charging through a gap and he had the ideal back up from number eight McKeon, who swept past Sarto's attempted tackle for a textbook try.
Parks added the conversion but the Italians, backed by the wind in the opening half, were not about to roll over.
Sinoti Sinoti broke over halfway and almost linked with the supporting Garcia. The winger threatened again down the same blindside moments later, before Buso missed a long range penalty.
The Zebre out-half was on target with his second attempt from the 10-metre line, punishing Willie Faloon for a ruck infringement.
Connacht hit back within four minutes, running Zebre through a rapid series of phases with Brett Wilkinson and Michael Kearney carrying well.
A precisely threaded pass from Parks then allowed Duffy step inside Sinoti and race past a flat-footed Alberto Benettin for a clinical score.
Parks converted from close range for a 14-3 scoreline but Zebre, edging it in the possession stakes, soon capitalised on Connacht's sloppiness.
Nathan White was penalised for a binding offence in the scrum and Buso kicked the three points from close in.
The Italians opened their try account on the half hour, Sinoti breaking brilliantly from the visitors' 10-metre line and sending the supporting Sarto speeding away and in under the posts.
Buso's successful conversion cut the gap to a single point, but the once-capped Italian international sent a late penalty wide as Zebre ended the half on the attack.
Parks split the posts with a penalty seven minutes into the second period, although the province had to readjust after Robbie Henshaw was injured when bringing down the onrushing Sinoti.
Duffy switched to full-back and Fetu'u Vainikolo was brought on out wide, and Zebre bit back on the hour when Buso was on target again.
Zebre enjoyed the better of play after Connacht replacement prop Ronan Loughney saw yellow for two quickfire offences, the second of which saw him bring down a maul near halfway.
The visitors turned to their scrum to win a penalty with nine minutes to go, and centre Garcia was successful with the kick from distance to give his side a serious boost at 19-17.
Once more though in a tight game, Parks delivered for Connacht with young hooker Jason Harris-Wright producing a man-of-the-match display up front.
Parks found a very good touch from a penalty and then pinged over his drop goal to restore the home side's lead.
Bergamasco's immediate sin-binning for killing ruck ball further unsettled the Italians and Parks' injury-time penalty sealed the westerners' third successive league win.
- Sports & Recreation
- Paolo Buso