Ian Whitten, Dan Tuohy and Craig Gilroy crossed for the visitors' three tries at Stadio Luigi Zaffanella, while Ian Humphreys added two penalties and two conversions.
Former Munster player Nick Williams scored the Italians' only try, with Naas Olivier kicking 14 points.
The replacement out-half coolly slotted a 69th-minute penalty and the hosts held on to register their first back-to-back wins at the start of the a season since the 2005/06 campaign.
Dan Newton had landed a brace of penalties to give the wind-backed Scarlets a 6-3 advantage at the break. Former Ospreys out-half Matthew Jarvis kicked one of his three first half attempts for Connacht.
Aaron Shingler's 47th-minute try stretched the visitors' lead to 11-3, but Connacht finished the stronger thanks to a converted try from Mark McCrea and O'Connor's clinching score.
Justin Tipuric scored an injury time try to give the Ospreys a 26-19 victory over Edinburgh and keep up their unbeaten record.
It looked as if the match was heading for a 19-19 draw until the Ospreys counter-attacked in injury time.
Ospreys were minus eight World Cup stars to Edinburgh's seven.
Against the run of early play Edinburgh scored a try on six minutes through wing Tim Visser after Richard Fussell over-ran Greig Laidlaw's chip ahead.
The Ospreys hit back with a stunning try from in-form scrum-half Rhys Webb, who weaved his way over from a line-out on the 22.
From the restart Edinburgh regained the lead with a Laidlaw kick but Dan Biggar locked the scores at 10-10 with a penalty from in front of the posts after 21 minutes.
Ospreys went into the lead after 31 minutes when Biggar slotted a penalty from a maul infringement by flanker Sean Cox.
In the second half Laidlaw kicked an effort after 45 minutes to give Edinburgh a 16-13 lead. A minute later Biggar had found the target to tie up the scores at 16-16 with his third penalty.
The Ospreys were well down on the penalty count but they got one back in their favour when Edinburgh failed to roll away. Biggar kicked it to give his side a 19-16 lead after 65 minutes.
But Laidlaw levelled the scores after Ian Evans was sin-binned from a line-out offence.
The match seemed destined for a draw until Tipuric squeezed over in the second minute of injury time.