The London side fielded close to a full-strength line-up, while Glasgow were perhaps as many as 10 players short of their best side. Harlequins proceeded to run up a 12-0 lead in the first 10 minutes courtesy of well-worked tries from England caps Nick Easter and Ugo Monye.
However, Glasgow gradually got into the game and after Scott Wight had opened their account with a penalty goal, a superb break by Richie Vernon put Byron McGuigan over for a try, which Wight converted to pull the visitors to within two points at the break.
Wight kicked two further penalties, after 56 minutes and just after the hour, to put Glasgow in front.
But with handling conditions deteriorating, they were unable to build a bigger cushion and a late surge from Quins led to replacement Matt Hopper bursting through for a try which Ben Botica converted to put the home side ahead again with 10 minutes to go.
Although Glasgow tried to come back and failed, head coach Gregor Townsend probably took more from the game than opposite number Conor O'Shea.
Townsend said: "Given the conditions it was never going to be a game of handling rugby, which is how both clubs want to play.
"I decided to give our younger players a run-out, while Harlequins went for experience, so I've got to be happy.
"We created well, got into the game after a bad start - it is a good base from which we move on."
Scorers - Harlequins: tries: N Easter, U Monye, M Hopper. Cons: N Evans, B Botica.
Glasgow Warriors: tries: McGuigan; Con: Wight. Penalty goals: Wight,(3).
Harlequins: M Brown, T Williams, G Lowe, J Turner-Hall, U Monye, N Evans, D Care; J Marler, J Gray, W Collier, G Merrick, G Robson, T Guest, C Robshaw, N Easter. Replacements (all used): R Buchanan, M Lambert, P Doran-Jones, S Twomey, L Wallace, K Dickson, B Botica, M Hopper, Maurie Fa'asavalu, D Ward, T Casson, P Sackey.
Glasgow Warriors: P Murchie, T Seymour, M Bennett, G Ascarate, B McGuigan, S Wight, A Price; G Reid, P McArthur, E Kalman, J Gray, T Ryder, J Eddie, C Fusaro, R Vernon. Replacements (all used): K Bryce, J Welsh, M Low, T Swinson, W Bordill, T Holmes, H Pyrgos, F Russell, R Hughes, S Lamont.
Referee: Andrew Small