"It's not over until it's over!" read the defiant message from the away supporters up in the top tier of the Weserstadion.
Ninety-five minutes, two defensive howlers and a 2-2 draw later, that was mathematically still the case. But with Bayern Munich now four points clear with two games to go, the Bundesliga title race is as good as over for Borussia Dortmund. And, as has so often been the case this season, Lucien Favre's team only have themselves to blame.
For the second time in a week, five minutes of self-inflicted madness have cost the Dortmund dearly. Seven days ago, two reckless challenges from Marco Reus and Marius Wolf saw them reduced to nine men in a disastrous derby, losing their captain for two games in the process.
In Bremen, goalkeeper Roman Bürki and defender Manuel Akanji were the culprits. The usually dependable Swiss stopper allowed Kevin Möhwald's firmly-hit shot to slip right under him, before Akanji was foiled in his attempt to shield the ball out of play for a corner. Ludwig Augustinsson nipped in, cut it back and 40-year-old Claudio Pizarro finished.
The faces of the Dortmund players, the body language of the Dortmund bench and the silence from the previously raucous away end conveyed the shock. But it was a strange, light sort of shock. The static off a charged material that you know is coming before you touch it but irritates all the same. Dortmund knew about these little shocks; they'd been here several times before this season.
Twice they led in extra-time in the cup against Bremen in February, and twice Bremen came back. Four days later, they were three goals up against Hoffenheim and contrived to draw 3-3. Against Mainz last month, they had a two-goal, half-time lead which they did their utmost to throw away. On that day, Bürki was the hero. Today, he was the villain.
One season in a game
It has been a season of unexpected but missed opportunities for Borussia Dortmund. Nobody at the Westfalenstadion seriously anticipated a title-challenge from a new, young squad in their first season under a new coach. But a quick start and a stuttering Bayern Munich gave them a nine-point lead in December. By March, that lead was gone.
Nobody expected Bayern Munich to drop points away at Nuremberg last week, but Dortmund had already blown that chance 26 hours earlier, with Favre even conceding the title race after the defeat to Schalke – prematurely as it turned out.
"We went from the deepest depression to hurray! We're still alive!" said sporting director Michael Zorc of Bayern's draw to Nuremberg that followed Dortmund's derby defeat. Dortmund had been gifted one more unexpected chance, but would they take it, without Reus, their suspended talisman and captain?
The yellow clouds from the pre-match pyrotechnics had only just cleared when Christian Pulisic darted through the middle, quickly left his marker behind and slotted calmly past Jiri Pavlenka. It was a goal that resembled the Pulisic of old, right when Dortmund needed it.
The triumvirate of Pulisic, Paco Alcacer, who scored a wonderful free kick, and Mario Götze all stepped up in Reus' absence – but they all went missing in the second half as Dortmund collapsed again. It was the story of a season of wasted opportunities.
"We know that we have to win next week and hope that Bayern lose," said a weary, shell-shocked Favre afterwards. "But we're not dreamers."