With the Celtic title having gone to Munster, this match was all but meaningless although the three-try win meant the Ospreys moved level on points with second-placed Leinster.
The Ospreys leaked a soft converted try after only five minutes, scored by full-back Bernardo Stortoni but that lead was cancelled out on 14 minutes with a converted try for Filo Tiatia.
Glasgow reclaimed the lead with a Ruaridh Jackson penalty after Williams was caught in possession and failed to release on his own line.
But the Scots’ advantage was short-lived as indiscipline at the ruck cost them three penalties, all of which James Hook kicked. A fourth penalty from Hook in the 34th minute gave the Ospreys a nine-point cushion, which was undone by another soft try as Max Evans put wing Lome Fa’atau in down the right.
But a good team try scored by Gareth Owen restored the home side’s lead at 24-15. After half-time Jackson kicked his second penalty but Glasgow suffered a setback when Max Evans was carried off on a stretcher.
Hook missed a long-range penalty but converted a fifth kick in the 56th minute as the Ospreys led 27-18.
Glasgow were reduced to 14 men on 64 minutes when Justin Va’a was yellow-carded for ball killing on his own line that began a spate of players being sent to the sin bin.
The Ospreys opted for a scrum instead of the penalty against a seven-man pack and scrum-half Jamie Nutbrown skipped in for the region’s third try, converted by Hook.
There were also yellow cards for prop duo Paul James and Jon Welsh for persistent scrummaging infringements meaning that there were uncontested scrums for the following 10 minutes.
Holah became the fourth player to see yellow after tripping up Glasgow scrum-half Mark McMillan, and in injury time Moray Low was the fifth to be sin-binned for some foul play spotted by the touch judge.
The last say of the match was to Glasgow’s Fa’atau who sprinted away for his second try in the 15th minute of injury time.
Ospreys scorers: Tries: Tiatia, Owen, Nutbrown. Cons: Hook 2. Pens: Hook 5.
OSPREYS: Owen, A. Bishop, Hook, Parker, Williams, Biggar, Nutbrown, D. Jones, Hibbard, Griffiths, Gough, Wyn-Jones, R. Jones, Holah, Tiatia.
Replacements: Beck for Biggar (78), Shervington for Hibbard (66), James for Griffiths (66), Levi for Wyn-Jones (78), Tandy for Tiatia (73).
Glasgow scorers: Tries: Stortoni, Faatau 2. Cons: Jackson. Pens: Jackson 2.
GLASGOW: Stortoni, Faatau, M. Evans, Morrison, T. Evans, Jackson, McMillan, Welsh, Milligan, Low, Turner, Kellock, Palepoi, Forrester, Brown.
Replacements: Gregor for Stortoni (48), Henderson for M. Evans (48), O’Hare for T. Evans (73), Va’a for Welsh (56), McArthur for Milligan (48), Barker for Kellock (44), Eddie for Palepoi (41).
Ref: George Clancy (IRFU).