As 80,000 people watched an international soccer match at a Paris stadium and as concertgoers packed a venue elsewhere in the city, chaos erupted.
A blast was heard over the roar of the crowd as France and Germany played a friendly match at the Stade de France.
At least 127 people have been killed in the attacks, which French President Francois Hollande blamed on ISIS. He described the violence as "terrorist attacks of an unprecedented magnitude."
Alexandre Bims, 18, was entering the stadium when the first blast occurred.
"We thought it was a gas leak, but then we saw people on the floor that were not moving," Bims, 18, told NBC News. "There was a second explosion; we saw someone who lost an arm."
He ran, and the sound of a third explosion followed five minutes later.
Near the restaurant Le Belle Equipe, Tommy Pouilly heard the sound of a dozen shots from his apartment. Police would later be seen covering bodies with sheets.
"I looked out my window. The courtyard of my building was full of people who evacuated the terrace of the restaurant," Pouilly said. "I was about to leave my house, I could have died ... I can't believe it."
Another woman who lives near the restaurant said she saw two shooters, one on foot and another inside a Renault. Abigaïl Malka said in an e-mail to NBC News that she "saw people on the ground, some motionless and others curled who were scared to move."
Paris Public Prosecutor François Mollins told reporters later that at least 120 people were killed in six attacks across Paris, and eight attackers were dead. Hollande declared a state of emergency and closed the country's borders.
In the Bataclan theater in the 11th arrondissement, a hip neighborhood full of restaurants and clubs, two or three attackers with automatic weapons "began to fire blindly into the crowd," causing a panic, a Europe 1 journalist who was in the concert hall said.
A witness to the carnage in the concert hall told France's BFMTV that "the show was about 30 minutes in when we heard shots and saw two persons with machine guns firing into the crowd."
People dove to the ground and scrambled towards an open door, the witness said. Eventually they were able to reach the roof, where a man in a nearby apartment let them in through a window. "We stayed there waiting for it to be over. We heard explosions, gunfire, screams," the witness told the network.
At least 100 people were killed at the Bataclan, police officials told The Associated Press. Police said at least five attackers were killed — and there aren't believed to be others.
The chaos in Paris spread quickly through social media. A person who claimed to have been in the Bataclan posted a plea for help on Facebook: "They are killing everyone."
Facebook activated a feature called "safety check" so that users could easily notify friends and family that they are safe.
Scott Raymond was at dinner with his wife when he got a text. "Everyone in our small restaurant was suddenly staring at their phones as the news began to break," he told NBC Bay Area. Others reportedly barricaded themselves in restaurants, the station reported.
Erin Allweiss had just been seated at a small restaurant Friday evening when she heard a commotion on the street and people running by. "Then we heard very loud gunfire," Allweiss told MSNBC.
A restaurant worker ran and shut the door. "All of us got under the table, really terrified," Allweiss said. The gunfire "was incredibly close… it was really rapid and it sounded like a lot of it," she said.
Karl Olive, mayor of Poissy, northwest of Paris, was at the France-Germany game when the blasts were heard.
The game continued, but fans were later told to move to the field and were told over a loudspeaker that two suicide bombers blew themselves up outside, he said.
As fans were allowed to leave the stadium, they sang the French National Anthem, La Marseillaise.
"This has never been seen before in France," Olive said.