Connacht retain slim hopes of reaching the Heineken Cup quarter-finals as they ran out 17-point winners over Zebre in Pool 3 at the Sportsground in Galway.
Matt Healy and Robbie Henshaw scored tries either side of half-time and tournament debutant Jack Carty kicked the rest of the points for Connacht.
Luciano Orquera landed a first-half penalty for Zebre's only score.
To have any chance of making the last eight, Pat Lam's men must beat Saracens and hope other results go their way.
Carty kicked two penalties to Orquera's lone first-half effort, with winger Healy's first Heineken Cup try - scored while Zebre's Filippo Ferrarini was in the sin-bin - moving Connacht 13-3 ahead at the break.
Henshaw then touched down with the promise of more scores, but the concluding 37 minutes were scoreless as the hosts' bonus-point push failed to materialise.
Zebre had the better of a scrappy first quarter in Galway that was littered with mistakes, and the kickers also each missed their first shot at the posts.
A burst through midfield from Eoin Griffin set up a left-sided penalty for fly-half Carty but he sent his kick narrowly wide, while Orquera also missed the target after an intercept from Kameli Ratuvou.
The Italians hit the front in the 16th minute when they won a scrum against the head and their international fly-half punished a Connacht maul infringement with the opening three points.
Fionn Carr flew through a gap to get the hosts into scoring range and Carty duly levelled matters with a 34-metre penalty from the left.
Carr was again involved just moments later before Henshaw's chip through bounced favourably for the westerners.
Prop Nathan White was held up short after a powerful charge and Zebre flanker Ferrarini saw yellow for not rolling away.
Carty claimed the three points on offer and Connacht continued to knock on the door, locks Andrew Browne and Michael Swift both going close before man-of-the-match Healy broke the deadlock five minutes before the break.
Healy did extremely well to fend off Guglielmo Palazzani's initial tackle and Giulio Toniolatti also lost his grip on the 24-year-old as he crawled over in the left corner.
Television match official Iain Ramage gave the thumbs-up to the score, which Carty brilliantly converted from the touchline.
Zebre went further behind three minutes into the second half, as Henshaw stepped his way over to the right of the posts after Swift's clever offload and an instinctive between-the-legs pass from Griffin.
Carty's conversion made it 20-3 and the home crowd urged Connacht to cut loose, although the Italians fought valiantly right to the finish.
Their stubborn defence prevented the province from using their lineout maul as a springboard for further scores.
Healy was unfortunate to lose control of the ball as he dived low for the try-line in the 67th minute following some incisive running from Henshaw and Carr.
There was another near miss late on for Healy who got no reward for his own breakaway effort, with Zebre replacement David Odiete getting back to deny him in the same left corner.
Despite the frustrating finish, the two-try performance still saw Connacht match their best return in a Heineken Cup season - three wins from last year.
They lie third in Pool 3, two points behind Toulouse and Saracens who meet on Sunday.
Connacht: D Leader; F Carr, R Henshaw, E Griffin, M Healy; J Carty, K Marmion; B Wilkinson, S Henry, N White, M Kearney, A Browne, J Muldoon, J Heenan, E McKeon.
Replacements: J Harris-Wright for Henry (45), D Buckley for Wilkinson (57), R Ah You for White (60), M Swift, G Naoupu for McKeon (64), P O'Donohoe for Marmion (71), D Parks for D Leader (72), G Duffy for Carty (72).
Not used: M Swift
Zebre: G Palazzani; G Toniolatti , K Ratuvou, G Garcia, D Berryman; L Orquera, A Chillon; M Aguero, D Giazzon, D Chistolini, Q Geldenhuys (capt), G Biagi, F Ferrarini, D van Schalkwyk, S Vunisa,
Replacements: A de Marchi for Aguero (59), D Ryan for Chistolini (59), M Bortolami for Biagi (60), N Cattina for Ferraraini (53), R Quartaroli for Garcia (64), R Trevisan for Palizzani (51), D Odiete for Berryman (71).
Not used: T D'Apice
Referee: Neil Paterson (SRFU).