When the first explosion echoed out in the sixteenth minute of the international friendly between France and Germany on Friday evening, many fans cheered thinking a firework had been set off outside.
But Felix Link, sat in the east stand, the part of the stadium closest to where a suicide bomber had just detonated an explosive vest, knew immediately that something was wrong.
“You could tell it wasn't a firework from the heat and the pressure wave that it caused,” the 24-year-old law student told The Local by phone from Paris.
Even before the match, things hadn't been quite right. He had heard of a bomb threat against the hotel the German team were staying at, forcing the players to be evacuated.
A second explosion hit a few minutes later and Felix got up to look outside. Peering out from above the entrance, he could see police closing the stadium doors and sealing the area off.
There were already "too many of them there to count," said Link, who comes from Berg, a small town on the outskirts of Munich.
Several scenarios were already crossing his mind, including the possibility of a shoot-out and the “dark feeling” that terrorism could have been at play. “But it is a feeling you try to suppress,” he said.
“We wanted to go, but we decided to wait until the end of the first half. When we tried to leave the security had erected metal barricades and weren't letting people leave. They told us it was for our own safety. We were fenced in.”
“Then we spoke to an American who told us that there had been a shoot-out and a hostage-taking. Now we really didn't feel safe. We thought that the stadium could be a target. The situation became really tense as people didn't know if the place was secure.”
The match resumes
Despite the fact that three explosions had rocked the outskirts of the stadium in the first half, the players came out for the second 45 minutes and fans once again took their seats.
Towards the end of the second half the home side scored a second goal to secure a 2-0 win.
By this stage it was clear that something was very wrong. Helicopters were hovering over the stadium and French President Francois Hollande had long since been evacuated. But “the goal was pretty well celebrated by the home fans,” Link says.
After the final whistle the exits from the east stand remained blocked off.
Link started to make his was through a side door into the adjacent stand where fans were slowly being allowed to leave the stadium. But another bang outside set off panic in the already tense atmosphere and people fled onto the pitch.
He himself escaped back into the east stand to keep a distance from the mass of people, some of whom fell to the ground, others were breaking down in tears.
Drawn guns and torches
It was a further half an hour before they made it out and the scene was one of chaos.
"Police were standing there with pistols drawn, flashing torches into your eyes. There were sniffer dogs everywhere, helicopters in the air."
But throughout it the fans stayed largely calm.
“There was absolutely no panic. Everyone was restless, people were on their phone trying to find out what happened, but they weren't panicking.”
Link had to walk kilometres to safety. No hotel would let him inside. There were no taxis to be seen. Finally after heading further out of town, he found a cab at a metro station and from there he quickly made it home through the empty Parisian streets.
In the days since the atmosphere has remained “fragile” and “fearful” he says. Helicopters are still sweeping the skies, and the streets are quieter than usual.
He himself has been to the site of one of the attacks to pay his respects.
That a crime on this scale could have taken place in the centre of Paris is clearly hard to fathom.
"When we heard about the bomb threat at the German football team's hotel it seemed absurd, we didn't take it seriously," he said.
But he hasn't let it undermine his love of the City of Light.
“In the last few months you saw the military more and more often at big sites in the city but nonetheless you still felt safe... even now you still feel safe.”