Media playback is not supported on this device
Eli Walker finished a slick Ospreys move for the opening try, before Rory Hughes' score put Glasgow 13-10 up at half-time.
Sam Davies' boot kept Ospreys in touch but Ryan Grant's controversial try restored the visitors' lead.
Ospreys levelled again with Dan Evans' incisive score and Davies missed a late chance to win the game as his drop-goal attempt sailed wide.
The hosts stay seventh in the Pro12 table, while Glasgow reclaim eighth spot from Cardiff Blues.
Buoyed by a European Champions Cup win against Racing 92 in their last outing, Glasgow made a strong start and led 6-0 thanks to two Duncan Weir penalties.
Ospreys responded first with a Davies penalty and then a smartly worked try from a line-out move, which culminated in a pop pass from centre Josh Matavesi to wing Walker, who sped over unopposed.
There was also deft handling in Glasgow's opening score, with lock Leone Nakarawa offloading brilliantly for wing Hughes to touch down in the corner.
A second Davies penalty brought Ospreys level at 13-13 early in the second half, but Glasgow soon restored their lead with a contentious try.
Referee Peter Fitzgibbon consulted television match official Jon Mason and, although there appeared to be a double movement from back row Ryan Wilson, the score was awarded as prop Grant plunged over from close range.
Ospreys equalised for the second time with 10 minutes left to set up a tense finale, with Davies' break and offload setting up full-back Evans to cross for their second try.
Davies had an opportunity to put the hosts in front three minutes later but pulled his drop-goal wide.
Ospreys: Dan Evans, Tom Grabham, Owen Watkin, Josh Matavesi, Eli Walker, Sam Davies, Brendon Leonard (capt); Nicky Smith, Sam Parry, Dmitri Arhip, Rynier Bernardo, Rory Thornton, Joe Bearman, Sam Underhill, Dan Baker
Replacements: Scott Otten, Gareth Thomas, Ma'afu Fia, Adam Beard, Olly Cracknell, Tom Habberfield, Ben John, JJ Engelbrecht
Glasgow Warriors: Peter Murchie; Lee Jones, Taqele Naiyaravoro, Sam Johnson, Rory Hughes, Duncan Weir, Grayson Hart; Ryan Grant, Pat MacArthur, Sila Puafisi, Greg Peterson, Leone Nakarawa, Rob Harley, Chris Fusaro, Ryan Wilson (capt)
Replacements: James Malcolm, Gordon Reid, D'arcy Rae, Josh Strauss, James Eddie, Ali Price, Gregor Hunter, Glenn Bryce
Referee: Peter Fitzgibbon (IRFU)
Assistant referees: Leighton Hodges, Wayne Davies (both WRU)
Citing commissioner: Gwyn Bowden (WRU)
TMO: Jon Mason (WRU)

The police force, which lost a High Court case in 2012, has already paid back £1.2m to the football club.
The figures emerged after the court examined the latest stage of the dispute, for charges over three seasons between 2009 and 2012.
The force said it would now work with the club to agree what money, "if anything", remains outstanding.
Two years ago, the High Court ruled the force overcharged for "special police services" between 2009 and 2012.
Leeds United had argued policing streets and car parks near its Elland Road ground was the force's responsibility and the club should not have to pay.
The High Court ruled in the club's favour and West Yorkshire Police lost a subsequent appeal against the decision.
The judge, Sir David Eady, said one area of dispute remaining related to how charges should be made for the 2012-13 and 2013-14 seasons.
Revealing details of developments in the case in a written analysis, following a further hearing in June, the judge said both parties had failed to agree a formula to calculate the appropriate rebate.
Sir David said the force had "repaid the rebate it thought due" and "claims now that no more is owed".
Assistant Chief Constable Mark Milsom said: "West Yorkshire Police has already repaid the club £1,238,816 following the original judgment.
"The ruling today makes clear that the force and the club should now work together to agree what, if anything, remains outstanding.
"We welcome the opportunity to now meet with the club."
Ospreys and Glasgow shared four tries in an entertaining draw in the Pro12.
[NEXT_CONCEPT]
Leeds United claims West Yorkshire Police still owes the club £800,000 for overcharging policing at home games.