Despite having to withstand considerable pressure in the first-half against a strong wind, the blue and blacks hit back with a try on the stroke of half-time to cut their deficit to two points.
Glasgow could only muster three penalties by their outside half Graeme Kiddie with the wind at their backs and as soon as Williams skipped over for his try, which Nicky Robinson converted, the game was always in their grasp.
Three more tries flowed in the second half, from Matt Allen, Gary Powell and Francois Mounier, and Robinson added two conversions and a penalty to give the home side a much needed boost with a 29-12 victory.
For Glasgow it was only their third defeat in eight games, although things are likely to get harder for them when the Six Nations comes around and puts added pressure on their leading players.
Meanwhile, at Virginia Park, Sonny Parker took the starring role as Pontypridd continued their climb up the table with a 36-16 victory over Caerphilly.
Parker ran in two of his side’s three tries. Fijian outside half Nicky Little helped himself to 21 points for the visitors.