Three second-half tries from the visitors ensured they finished Pool Two with a perfect record of six wins.
Daniel Temm, Rob Vickers and Chris Harris all crossed for the Falcons after Rhys Webb's early score.
But Ospreys rallied after the break and Hanno Dirksen, Sam Davies and Scott Otten scored to turn game around.
Ospreys progress to the last eight as top seeds and will face Stade Francais at home after becoming the first team in history to register the maximum 30 points in the pool stages of a domestic European competition.
Meanwhile, Newcastle knew they needed at least a win to edge out French side Lyon for second place.
The Top 14 side emphatically secured a bonus-point victory as they beat compatriots Grenoble 57-13 in a dominant display, which included nine tries.
Newcastle Falcons: Tait; Catterick, Harris, Waldouck, Burdon; Willis, Young; Harris, Cooper, Welsh, Green, Robinson, Welch (capt), Temm, Wilson.
Replacements: Nelson, Vickers, Ryan, Botha, Orr, Egerton, Hodgson, Marshall.
Ospreys: Evans; Dirksen, Fonotia, Matavesi, Howells; Davies, Webb (capt); Thomas, Baldwin, Jones, Beard, Thornton, Cracknell, Underhill, King.
Replacements: Otten, Smith, Suter, Ashley, McCusker, Leonard, Spratt, John.
Referee: Alexandre Ruiz (France).
For the latest rugby union news follow @bbcrugbyunion on Twitter.
Newcastle missed out on the European Challenge Cup quarter-finals after letting a 21-7 half-time lead slip against Ospreys.