Replacement Zebre scrum-half Guglielmo Palazzani scored a last-minute try to all but end Ospreys' hopes of making the Pro12 play-offs.
Zebre's first win over the Welsh region gave the Italian side hope of being in Europe's Rugby Champions' Cup next season.
Giovanbattista Venditti and Brendan Leonard also went over for Zebre.
Justin Tipuric, Ashley Beck and skipper Alun Wyn Jones crossed for the visitors in a dramatic encounter in Parma.
Ospreys must now rely on Ulster failing to earn anything against Leinster on Friday and at Munster in their final game of the regular season.
Four points separate fifth-placed Ospreys from Ulster in the table after they took a losing bonus point against Zebre.
But even if Ulster slip up against Leinster and again at Munster on 10 May, when all Pro12 games kick off at 18:30 BST, Ospreys will still have to register a bonus-point win against Connacht.
Zebre began stronger, profiting from a dominant scrum and some laboured Ospreys attacking efforts.
The visitors were 10-0 down by the 12th minute as fly-half Luciano Orquera landed an early penalty before the hosts conjured a memorable opening try.
Orquera's side-stepping run took him past Ospreys skipper Alun Wyn Jones and Venditti took the floated wide pass to score.
Orquera added the conversion and although Biggar put his side on the scoreboard and added a second penalty, two poor tactical kicks by full-back Sam Davies underlined the visitors' problems.
They also conceded a good attacking position when hooker Scott Baldwin lost possession in the home 22.
Two more Orquera penalties gave the hosts a 16-6 lead at the break, but Ospreys struck back from the restart.
Number eight Dan Baker went around Zebre open-side Andries van Schalkwyk and made 40 metres before giving Tipuric the scoring pass.
Biggar converted and wing Hanno Dirksen provided another threat before his burst was halted when a potential scoring pass to his fly-half hit centre Kameli Ratouvu's chest.
Centre Beck, however, was not to be denied and Biggar again converted.
And lock and skipper Alun Wyn Jones drove over to give Ospreys a 27-16 lead after Biggar's conversion.
But poor defence helped former New Zealand scrum half Brendan Leonard strike back for Zebre and Tommaso Iannone converted.
The visitors went in search of a bonus-point try that would have been a massive boost in their bid to overtake Ulster in the race for a top-four place.
But despite Zebre's line-out failings, they were able to escape from under their own posts and after launching a counter-attack from behind their own line, won a crucial penalty in Ospreys' territory for which Alun Wyn Jones was sin-binned.
Palazinni tapped and ran and, after a move that seemed to have been stalled on the visitors' line, the replacement half-back brushed past Biggar to touch down.
Iannone added the extra points to help Zebre overtake Italian rivals Treviso in the table. If they stay there, Zebre will take Italy's place in Europe's top flight next season.
Zebre: David Odiete; Dion Berryman, Kameli Ratuvou, Gonzalo Garcia, Giovanbattista Venditti; Luciano Orquera, Brendon Leonard; Salvatore Perugini, Davide Giazzon, Dario Chistolini, Quintin Geldenhuys, Marco Bortorlami (capt), Mauro Bergamasco, Andries van Schalkwyk, Samuela Vunisa.
Replacements: Andrea Manici, Matias Aguero, Dave Ryan, Filippo Ferrarini, Guglielmo Palazzani, Tommaso Iannone, Ruggero Trevisan.
Ospreys: Sam Davies; Hanno Dirksen, Ashley Beck, Andrew Bishop, Aisea Natoga; Dan Biggar, Tom Habberfield; Nicky Smith, Scott Baldwin, Aaron Jarvis, Ian Evans, Alun Wyn Jones (capt), James King, Justin Tipuric, Dan Baker.
Replacements: Scott Otten, Marc Thomas, Adam Jones, Ryan Jones, Joe Bearman, Sam Lewis, Tito Tebaldi, Jeff Hassler.
Referee: Peter Fitzgibbon (IRFU)
Assistant Referees: Elia Rizzo, Filippo Bertelli (both FIR)
Citing Commissioner: Albeto Recaldini (FIR)
TMO: Carlo Damasco (FIR)