|Ospreys (3) 21|
|Tries: John, Webb Cons: Biggar Pens: D Evans, Biggar 2|
|Glasgow (3) 10|
|Tries: Fusaro Cons: Weir Pens: Weir|
Ospreys strengthened their claims for a home draw in the Pro12 play-offs by taking over as leaders from Glasgow at a rain-soaked Liberty Stadium.
Duncan Weir and Dan Evans exchanged penalties in a tight first half.
But after the break, tries from Ben John and Rhys Webb, with a a superb solo score, put Ospreys in control.
Glasgow hit back when a rolling maul from a line-out shoved Chris Fusaro over, but a late Dan Biggar penalty kept Ospreys clear.
The Welsh side go top only on points difference from Glasgow, with the winners of Ulster versus Munster at the Kingspan Stadium on Saturday set to claim the lead outright.
Ospreys - having not beaten their visitors in the past seven attempts - went at their visitors from the kick-off and Glasgow needed to dig deep to keep them out, after Tyler Ardon had made an initial break into the 22.
The Scots worked their way upfield to claim first blood, with Weir missing his first kick at goal after Ardron was penalised at a line-out, but the fly-half made sure with his next chance.
Ospreys replied with a cutting backs move that sent Biggar squirting through a gap and over the line.
But the Glasgow tacklers did well to hold up the ball, with the Ospreys fly-half also needing to leave the field temporarily after taking a knock.
In Biggar's absence it was left to Dan Evans to take over the kicking duties and the full-back drew Ospreys level after a collapsed scrum.
Biggar soon returned, but his temporary replacement Sam Davies was quickly back on the field when wing Jeff Hassler broke down on his comeback from a long-term knee injury.
Glasgow had also suffered an early casualty, with Leone Nakarawa coming on for Tim Swinson at lock.
The Scots' best chance of a try was created by a neat chip through from Stuart Hogg, but went to waste as Niko Matawalu was too heavy with his boot as he hacked on.
Hogg nearly stole the lead when he took on a kick from three metres inside his own half, only to see the ball go just wide, while Biggar was similarly wide with a drop-goal on the stroke of half-time.
Biggar put Ospreys into the lead for the first time with a penalty soon after the restart and then sparked the game's first try.
The fly-half showed great adventure in increasingly wet conditions to launch a swift attack, with his team-mates taking on the move.
Front-rowers Dmitri Arhip - on for Aaron Jarvis - and Scott Baldwin combined brilliantly to set Josh Matavesi free, who in turn released John to go over on the right.
Biggar hit the post with the conversion from the difficult angle, while Weir also found the woodwork minutes later with a much easier kick - wasting a golden chance to bring Glasgow within a score.
That looked even more costly when Webb scored a brilliant solo try for the home side, darting through a gap in a line-out and then chipping over Matawalu for a try that was converted by Biggar for a 18-3 lead.
If Ospreys thought they had the game won they were made to think again five minutes later when Chris Fusaro was shunted over the line by a powerful Glasgow drive from a line-out, with Weir also converting.
With six minutes remaining Biggar added his second penalty of the night to cap a hugely important victory for the Welsh.
Despite the defeat, Glasgow are by no means out of the running for home advantage and it sets up a thrilling last round of the regular season next weekend.
Ospreys go to Connacht, Glasgow are at home to top-four rivals Ulster, while Munster also have home advantage over Newport Gwent Dragons.
Ospreys: Dan Evans; Jeff Hassler, Ben John, Josh Matavesi, Eli Walker; Dan Biggar, Rhys Webb; Nicky Smith, Scott Baldwin, Aaron Jarvis, Tyler Ardron, Alun Wyn Jones (capt), James King, Justin Tipuric, Dan Baker.
Replacements: Sam Parry, Marc Thomas, Dmitri Arhip, Rory Thornton, Dan Lydiate, Tom Habberfield, Sam Davies, Jonathan Spratt.
Glasgow Warriors: Stuart Hogg; Tommy Seymour, Richie Vernon, Peter Horne, Niko Matawalu; Duncan Weir, Henry Pyrgos; Ryan Grant, Pat MacArthur, Jon Welsh, Tim Swinson, Jonny Gray, Rob Harley, Chris Fusaro, Josh Strauss (capt).
Replacements Fraser Brown, Gordon Reid, Euan Murray, Leone Nakarawa, Ryan Wilson, Lee Jones, Fraser Lyle, Peter Murchie.
Referee: George Clancy (IRFU)
Assistant Referees: Neil Hennessy, Martyn Lewis (WRU)
Citing Commissioner: John Charles (WRU )
TMO: Derek Bevan (WRU)