Aubameyang had missed a penalty as Dortmund lost 1-0 in the first leg of the Round of 16 contest, but he made up for that by taking his tally to seven goals in seven games as the German side progressed 4-1 on aggregate.
Barcelona shocked Paris Saint-Germain 6-1 in Wednesday’s other game with the winner in injury time to progress 6-5 on aggregate.
Aubameyang got Dortmund off to a flying start in the fourth minute, heading in from point blank range after Pulisic headed on a corner.
Pulisic was playing in place of the injured Marco Reus, with the 18-year-old American making his eighth Champions League appearance.
Dortmund kept the visitors pegged back, with Marc Bartra going close and then Ousmane Dembele trying his luck from distance.
It was midway through the half before Benfica finally got forward, though Roman Buerki easily saved Franco Cervi’s low shot — a good chance for the visitors.
Fear of conceding an away goal seemed to weigh on the Dortmund defence.
Cervi should have scored after the break after Lukasz Piszczek botched a clearance but the Dortmund defender scrambled back in time to block.
Piszczek more than made up for his error by finding the impressive Pulisic to score at the other end in the 59th with a brilliant chip over the outrushing Ederson.
Within two minutes Dortmund had another as Aubameyang grabbed his second from Marcel Schmelzer’s volleyed cross after Julian Weigl picked him out with a fine diagonal ball.
Bartra hit the post with a header before Aubameyang completed his hat trick with five minutes remaining thanks to Erik Durm’s cross.