"It was no easy game, it was hard. Hamburg put us under a lot of pressure, and then only a good team can win," said Peter Bosz, the first coach in the Bundesliga to start without conceding in his first five games.
Shinji Kagawa's strike from close range fired his side into an early lead, but the visitors failed to make the most of their dominance and left open chances at the other end. Pierre-Emerick Aubameyang hit the post and the lively Andrey Yarmolenko fired over when he might have done better before the break.
"We should have scored two or three goals in the first half," Bosz said. The trend continued after the interval, when Mergim Mavraj and Andre Hahn also went close for the home side. However, Dortmund finally created some breathing space when Yarmolenko crossed for Aubameyang to score on a counterattack.
Pulisic made sure of the win with 10 minutes remaining when he took Mahmoud Dahoud's pass and burst between two defenders before clipping the ball inside the far post. It was the American's second goal of the season.
"It took a while, but then the goals came and, yeah, it was very good," Pulisic said.
Mark Uth scored in injury time as Hoffenheim came from two goals down to win 3-2 at Mainz.
The visitors made a dismal start, with poor defending to blame for conceding twice in the opening 16 minutes. But Nadiem Amiri and Sandro Wagner scored before the break, and Uth sealed an unlikely comeback with a fine strike in the second minute of added time.
It was Uth's two goals that gave Hoffenheim a win over Bayern in the third round.
COLOGNE LOSES AGAIN
A hotly contested penalty decision cost Cologne dearly as the side remained on zero points with its fifth consecutive defeat.
Sebastien Haller converted from the spot to give visiting Eintracht Frankfurt a 1-0 win. But Cologne felt the penalty was unfairly given, after Mijat Gacinovic went down under contact from Timo Horn, as the Cologne 'keeper had also got the ball.
Despite the home side's protests, referee Martin Petersen did not use his video assistant in his first Bundesliga game as Wolfgang Stark apparently saw no reason to intervene.
"I saw the pictures again on TV. It's really unbelievable," Horn said afterward. "It's like you're in the wrong film."
Petersen also overlooked what looked like clear penalties at both ends.
Goals from Mathew Leckie and Salomon Kalou gave Hertha Berlin a 2-1 win over Bayer Leverkusen, dealing the visitors their third loss in five games.
Leckie produced a brilliant finish into the far corner to get Hertha off to a great start, before Vedad Ibisevic, who had also set up Leckie, eluded Leverkusen 'keeper Bernd Leno on the byline and picked out Kalou to head into the unguarded net.
Nils Petersen scored late to rescue a 1-1 draw for Freiburg against promoted side Hannover, which had been on course to join Dortmund on 13 points. Hannover remains one of three clubs that are still unbeaten, alongside Dortmund and Hoffenheim.