Denmark international Poulsen opened the scoring for the Bundesliga side early on and played a key part in Vasilije Janjicic putting through his own net after Bakery Jatta equalised in the 23rd minute.
Hamburg was unable to restore parity once more as Emil Forsberg added a third for Leipzig with 18 minutes to play.
Ralf Rangnick's side will now face either Bayern Munich or Werder Bremen, who meet on Thursday (AEST), in the final at the Olympiastadion on 25 May.
Leipzig was rewarded for a fast start as Poulsen profited from some slack defending to guide Marcel Halstenberg's corner past Julian Pollersbeck from eight yards in the 12th minute.
The host should have been two goals behind within 15 minutes but was saved by the frame of its goal when Poulsen and Marcel Sabitzer both hit the post in the space of four seconds.
Hamburg made the most of that let off thanks to a goal against the run of play, with Jatta winning the ball from Kevin Kampl and lifting a bending effort over an off-guard Peter Gulacsi.
It took just eight second-half minutes for Rangnick's men to regain their advantage, though. Wary of the lurking Timo Werner, Janjicic turned Kampl's ball across the face of goal into his own net.
Leipzig put the game beyond doubt through Forsberg's strike from the edge of the box, picking out the bottom-left corner just three minutes after he rattled the crossbar.