Catalans: (6) 16
Tries: Bosc, Pelo, Fellous
Goals: Bosc (2)
Harlequins: (24) 38
Tries: Wells, Randall, Orr, McLinden (2), Rinaldi
Goals: Paul (7)
Harlequins ran in six tries as they ended the Dragons' four-match winning run and moved up to sixth place in Super League.
Jon Wells touched down on three minutes but Thomas Bosc's converted try put the Dragons ahead before a swift double strike by Chad Randall and Danny Orr.
Mark McLinden made it 24-6 at the break and although Dimitri Pelo scored Julien Rinaldi restored Quins' advantage.
Adel Fellous then touched down before McLinden's second rounded off the game.
Harlequins coach Brian McDermott "We dominated the first half but they came out firing in the second period. They upped the ante and we had to match it. It was a massive defensive effort.
"Full credit to the players for the way they have approached this period. It is certainly paying off.
"But we must back it up against Wakefield on Saturday. It's no good us coming this far without another big performance."
Catalans Dragons: Greenshields, Bosc, Duport, Mogg, Pelo, McGuire, Jones, Chan, Teixido, Guisset, A. Bentley, Croker, Touxagas. Replacements: Ferriol, Griffi, Fellous, K. Bentley.
Harlequins: Melling, Wells, Sykes, T. Smith, A. Smith, Orr, McLinden, McCarthy-Scarsbrook, Randall, Heckenberg, Purdham, Hopkins, Paul. Replacements: Rinaldi, Mills, Temata, Hill.