Marathoners streamed toward the finish, just steps from triumph. Under crisp blue skies, crowds lined Boylston Street to cheer them down that final stretch, to celebrate the day that means spring in Boston has finally come.

Then, in an terrifying blast of fire and smoke, one powerful explosion ripped through the roadside crowd, then a second. Screams filled the air, and spectators fled in a frantic rush. One runner crumpled to the ground, his legs buckled by the force of the blast. Others kept running, through the finish line and away. As exhausted athletes stumbled off in a half-trance, searching desperately for someone they knew, many wept.

In a cruel, unimaginable moment, the finish line of the world’s most storied road race became a kind of battlefield, a surreal jumble of screams, smoke, and a sidewalk “loaded with blood.” The city’s signature event, a vast celebration that fixes the nation’s eye on Boston, had been shattered by an apparent act of terrorism, turning the heart of the Back Bay into mayhem. A city that would never be quite the same.

“You heard boom, boom, then people screaming,” said Oscar Otero, who was just a few feet away from the first explosion near the finish line. “There was blood all over the place. I saw a leg, people with bones sticking out of their skin.”

Get Fast Forward in your inbox:

Forget yesterday's news. Get what you need today in this early-morning email.

The vicious blasts killed at least three people, including an 8-year-old boy, and injured more than 130, leaving scores of bloodied victims lying in the street, the marathon route stained with blood and strewn with shards of glass. Witnesses to the explosions described a heart-rending scene — limbs torn by shrapnel, cries of pain and disbelief, runners tearing off their shirts to stanch the bleeding, medics whispering to the wounded that they would be OK.

“Glass and smoke, and people down,” Jennifer Horton, 42, said of the scene. “And blood.”

The crowd was 15 deep at the site of the first explosion, which tore through a steel barricade and blew out storefront windows. Amid the euphoria of runners completing the 26.2-mile course and the revelry of the holiday crowd, people could scarcely process what had happened.

“I feel like I’m going to throw up,” said John Boyden, 57, who was nearly knocked off his feet by the second blast. “It’s like we’re in the Middle East or something.”

At the finish line, the force of the explosion knocked Globe photographer John Tlumacki’s camera from his hands.

“People were in shock,” said Tlumacki. “Nobody wanted to believe it.”

John Lagoudakis, a chef at a nearby restaurant, heard the explosion and ran outside to see a woman with a severed leg. Through the shock, he took off his apron to use as a tourniquet. William Moscarelli was waiting for a friend to run by when the first explosion went off, just 50 feet away. He saw smoke, and heard the screams. “Get down, get down!” Next to him, a mother threw herself on her child.

“Then the second bomb went off,” he said. Rising to his feet, he saw injured people writhing in pain, their clothes blown away by the force.

“There were eight guys on the ground, rolling around, smoke coming out, blood all over them, clothes missing,” he said.

Witness after shaken witness recounted how a fiery flash had plunged a festive spring day into darkness and utter confusion. Information and cellphone signals were spotty, and runners and spectators did not know where to go. Every few minutes, police cleared the streets with chilling shouts of “It’s not safe here.”

As exhausted runners tried to find their loved ones, shivering through the streets in foil blankets, sirens blared, and lines of ambulances rushed to the scene, snaking down Boston’s most graceful boulevards. Helicopters whirred overhead, buses of SWAT teams descended on Boston Common, and runners who were diverted from the course shuffled down Commonwealth Avenue in pained confusion.

Amid the chaos, the area went into lockdown. On Boylston Street by the Lenox Hotel, Tim Casey closed the doors of Uno Chicago Grill as a precaution. But then a shirtless man came to the window, his hands covered in blood, asking for help.

“He was more dazed than anything,” Casey said.

Thousands of runners were still on the course when the bombs struck, many of them running for charity, training through the long winter to help those in need. It took time, but slowly the news made its way back through the pack — the race was over.

Karen Matjucha, 49, of Sudbury, was a short distance from the finish when she faced the jarring sight of people running back in the wrong direction.

“I saw people coming toward me crying and I couldn’t figure out why,” she said.

Police directed her to go back to the medical tent at the 25-mile mark. About 6 p.m., she was searching for a cab, still in her running clothes and without money, unable to reach her car.

For the spectators and others enjoying a day off, the festive mood vanished in a flash.

Aaron Michlewitz, a state representative, was at Abe & Louie’s steakhouse on Boylston Street he heard the first blast.

“Debris was shooting toward us, it started to hit me in the face and body,” he said.

After the initial shock, residents and runners jumped in to help a wounded city.

At 6:30 p.m., marathon volunteer John Gannon, a lawyer, drove slowly down Charles Street in his Honda Accord, calling out the window to ask if stranded runners needed a ride or a phone to borrow.

He scoured the streets, at a loss for words. He had already taken two carloads to Harvard Square and a third to the Newton Marriott.

“I just couldn’t go home. I felt like I had to do something,” he said. A day spent volunteering seemed unfinished. “We just felt like our mission wasn’t done.”

Peter Schworm can be reached at schworm@globe.com. Michael Levenson, Jim O’Sullivan, Eric Moskowitz, Billy Baker and Casey Ross of the Globe Staff contributed to this report.