After a quiet opening 20 minutes, Stephen Myler added the first points of the game with a penalty, before Tom Collins scored the opening try of the match, going over in the corner just a couple of minutes after replacing George North.
The visitors were able to get off the mark just before the break when Ben Botica split the uprights with a penalty kick.
However, Kahn Fotuali'i extended Northampton's lead at the start of the second half, sprinting 40 metres before diving over.
Nick Easter gave the visitors some late hope with Harlequins' first try of the game, but they were unable to cut the Saints' lead further.
Northampton will face either London Wasps or Bath in next month's final.