On-loan winger Bulter dared fans of the newly-promoted side to dream when he gave the hosts a surprise lead midway through the first half although Paco Alcacer soon equalised for Dortmund.
Bulter struck again five minutes after the resumption to restore Union's advantage before Sebastian Andersson sealed a 3-1 win with a quarter of an hour remaining.
The defeat was Dortmund's first of the season and their first in any competition since the end of April while Union were left toasting a memorable day in their 53-year history.
Dortmund had started their campaign by swatting aside Augsburg and Cologne and they had an opportunity to go top of the embryonic standings if they won by more than one goal in the German capital.
They started well enough but were unable to take advantage of Julian Brandt's inviting ball across the area while Marco Reus went close with a free-kick.
However, Neven Subotic, who made more than 250 appearances during a decade at Dortmund, headed fractionally wide as Union showed they would be no pushovers.
The noise levels in the stadium increased when the Union took the lead in the 22nd minute, Bulter tucking low past Dortmund goalkeeper Roman Burki following a free-kick into the area.
Union were pegged back three minutes later as Jadon Sancho's perfectly-weighted ball into the area led to a sliding finish from Alcacer.
Sheraldo Becker narrowly failed to get on the end of Robert Andrich's ball through, while at the other end an unmarked Reus saw his effort denied by Rafal Gikiewicz on the stroke of half-time.
Dortmund were forced into a change at the start of the second half because of a head injury to Thomas Delaney, the midfielder replaced by Mahmoud Dahoud.
They then fell behind again five minutes after the resumption, with Andersson skilfully going past Manuel Akanji and although Burki parried the Swede's effort, Bulter was on hand to score on the rebound.
The stadium was in raptures by the time Andersson doubled their lead, scoring from close after being teed up by Becker, who had linked up well with Andrich in the build-up.
Union defended stoutly thereafter to keep chances at a premium to frustrate Dortmund on a forgettable night for last season's runners-up.