Toulouse secured top spot in Pool 3 but were made to work hard for the points by Zebre, eventually sealing a 16-6 win at Stadio XXV Aprile in Italy.
Sebastien Bezy's try and five points from the boot of Jean-Marc Doussain gave the Top 14 side a 10-3 lead, while Luciano Orquera's penalty was the hosts' response.
Although Orquera added a second three-pointer after the interval, penalties from Doussain and Bezy secured the victory for the visitors and their passage into the knockout stages.
The French outfit went into the contest having secured four wins from five games, including two impressive victories over English giants Saracens.
They controlled the early exchanges here, but they were met with a resolute Italian rearguard who were determined to end their European campaign on a positive note.
Doussain did put the visitors into an early lead before Orquera levelled matters with one of his own. Zebre's stand-off then had two opportunities to give his side the advantage, but his efforts missed the target.
That was to prove costly when, in the space of three first half minutes, Dries van Schalkwyk and Mauro Bergamasco were sin-binned.
And Toulouse took advantage as Bezy crossed the whitewash for a converted try to take them 10-3 ahead at the interval.
The hosts came out in the second period with renewed vigour and Orquera reduced the arrears with a three-pointer.
However, Guy Noves' men were always in control and penalties from Bezy and Doussain sealed their place in the last eight.
Pen: Orquera 2
Pen: Doussain 2, Bézy
Zebre: 15 Ruggero Trevisan, 14 Leonardo Sarto, 13 Kameli Ratuvou, 12 Gonzalo Garcia, 11 Dion Berryman, 10 Luciano Orquera, 9 Brendon Leonard, 8 Samu Vunisa 7 Dries van Schalkwyk, 6 Mauro Bergamasco, 5 George Biagi, 4 Quintin Geldenhuys (c), 3 Dario Chistolini, 2 Tommaso D'Apice, 1 Matias Aguero.
Replacements: 16 Luciano Leibson, 17 Andrea de Marchi, 18 Luca Redolfini, 19 Emiliano Caffini, 20 Filippo Cristiano, 21 Alberto Chillon, 22 Roberto Quartaroli, 23 Guglielmo Palazzani.
Toulouse: 15 Maxime Médard, 14 Vincent Clerc, 13 Yann David, 12 Gael Fickou, 11 Yoann Huget, 10 Jean-Marc Doussain, 9 Sebastian Bézy, 8 Louis Picamoles, 7 Thierry Dusautoir (c), 6 Yannick Nyanga, 5 Joe Tekori, 4 Yoann Maestri, 3 Census Johnston, 2 Chiliboy Ralepelle, 1 Schalk Ferriera.
Replacements: 16 Christopher Tolofua, 17 Cyril Baille, 18 Yohan Montes, 19 Romain Millo-Chluski, 20 Yacouba Camara, 21 Jano Vermaak, 22 Clement Poitrenaud, 23 Timoci Matanavou.
Venue: Stadio XXV Aprile
Referee: Dudley Phillips (Ireland)
Assistant referees: Eddie Hogan-O'Connell (Ireland), Paul Haycock (Ireland)
Television match official: Marshall Kilgore (Ireland)