The ambush began with gunshots that killed five officers and sent screaming crowds scrambling for cover. It ended when a Dallas police bomb squad robot killed a gunman after negotiations failed.
Investigators identified the dead attacker as 25-year-old Micah Xavier Johnson of Mesquite, Texas, a military veteran who'd served in Afghanistan.
Police said they searched his home Friday afternoon and found bomb-making materials, ballistic vests, rifles, ammunition and a personal journal of combat tactics. Investigators are analyzing information in the journal, a police statement said.
Dallas Mayor Mike Rawlings said Friday afternoon that investigators determined Johnson was "the lone shooter in this incident," confirming what federal officials had told CNN.
"This was a mobile shooter who had written manifestos on how to shoot and move, shoot and move, and that's what he did," Rawlings said at a news conference. "As we've started to unravel this fishing knot, we've come to realize this shooting came from one building at different levels."
Rawlings stressed that other people may have been involved in planning the attack. He said there was confusion about the number of shooters at first because there were about 20 protesters dressed in camouflage and carrying rifles, and they scattered when the shooting started.
Dallas police Chief David Brown spoke at a prayer rally on Friday and said: "Through our investigation of some of the suspects, it's revealed to us that this was a well-planned, well-thought-out, evil tragedy by these suspects."
Nobody has been charged, Gov. Greg Abbott said, but police want to make sure every lead is investigated.
The deadly gunfire erupted in Dallas after videos showing two African-American men shot by police in Louisiana and Minnesota spurred protests and debate over police use of force across the country.
Five police officers were killed and seven others were wounded in the ambush. It was the deadliest single incident for U.S. law enforcement since September 11, 2001. Two civilians were hurt, the Dallas mayor's office said.
Johnson killed by bomb
As officials condemned the attack, details emerged about the man who died after a lengthy standoff with police in a parking garage.
Johnson told police negotiators that he was upset about recent police shootings, that he wanted to kill white people -- especially white officers -- and that he acted alone, the city's police chief told reporters Friday.
"We saw no other option but to use our bomb robot and place a device on its extension for it to detonate where the suspect was," Brown said. "Other options would have exposed our officers to grave danger. The suspect is deceased as a result of detonating the bomb."
Johnson had no criminal record or known terror ties, a law enforcement official said.
He served in the U.S. Army Reserve from March 2009 to April 2015, training as a carpentry and masonry specialist, according to records released by the Pentagon. Johnson was deployed for about seven months in Afghanistan, from late 2013 to mid-2014, and recevied an honorary discharge.
Wayne Bynoe, a neighbor, said police cars were outside Johnson's home Friday. Johnson lived with his mother and kept to himself, Bynoe said.
Johnson had at least two weapons with him -- a rifle and a handgun, two law enforcement officials said.
One of the officials, familiar with the latest information from the Dallas police investigation, said the rifle was an SKS semi-automatic. The other official said Johnson legally bought multiple firearms in the past.
Dallas police said in a statement Friday that investigators discovered rifles and ammunition in Johnson's house.
He was the "lone gunman," Secretary of Homeland Security Jeh Johnson said.
Witnesses said protesters were marching peacefully in downtown Dallas when the gunfire started Thursday night.
The Rev. Jeff Hood, one of the protest organizers, said he saw two officers go down, then watched a sergeant running toward the gunfire.
"I ran the opposite direction. I was concerned about the 700 or 800 people behind me," he said. "I was screaming, 'Run! Run! Active shooter! Run!' And I was trying to get folks out as fast as I could."
Crowds ran into a parking garage, witnesses said, and spilled out after word spread a sniper was nearby.
"Everyone was screaming, people were running," said witness Clarissa Myles. "I saw at least probably 30 shots go off."
Police have said at least two snipers fired "ambush-style" from an "elevated position." Then police exchanged gunfire and negotiated with a suspect for hours at a parking garage in downtown Dallas.
Before authorities killed him with an explosive, Johnson told negotiators more officers were going to get hurt, and that bombs had been planted all over downtown.
Police found no explosives during sweeps of the area, Dallas Police Maj. Max Geron said Friday morning on Twitter.
The five slain officers were identified on Friday.
Dallas Police Officer Lorne Ahrens was killed in last night's ambush in downtown Dallas, according to The Washington Post and local media reports. Ahrens was a 14-year veteran of the Dallas Police Department, according to media reports.
Dallas Police Officer Michael Smith was also killed in last night's ambush, according to CNN affiliate KFDM and local media reports. Smith joined the Dallas Police Department in 1989, according to his sister, who spoke to CNN affiliate KFDM.
CNN affiliate WDIV said Dallas officer Michael Krol was killed. The last two officers were Dallas officer Patrick Zamarripa and DART Police officer Brent Thompson.
Police have said at least 10 officers were shot by a sniper and one officer was shot in a shootout at the parking garage. It's not clear where the 12th officer was shot.
A few of the wounded officers remain hospitalized, police said. Brown called for the community to support them.
"We don't feel much support most days. Let's not make today most days," Brown said. "Please, we need your support to be able to protect you from men like these, who carried out this tragic, tragic event."
Brown said authorities believe others in custody are connected to the shooting, though he didn't say they did any shooting.
Authorities had said three people were in custody.
"I'm not going to be satisfied until we've turned over every stone. We've got some level that this one suspect did do some of the shooting. But we're not satisfied that we've exhausted every lead," he said. "So if there's someone out there who's associated with this, we will find you, we will prosecute you, and we will bring you to justice."
The Dallas police chief told reporters it's too soon to speculate on the suspect's motives, and it's unclear whether more suspects are on the loose.
"We're hurting. Our profession is hurting. There are no words to describe the atrocity that happened in our city," he said. "All I know is that this must stop -- this divisiveness between our police and our citizens."
U.S. Attorney General Loretta Lynch described the Dallas shootings as the latest in a series of tragedies that have left the country reeling.
"After the events of this week, Americans across the county are feeling a sense of helplessness, of uncertainty and of fear. Now, these feelings are understandable and they are justified," she said, "but the answer must not be violence."
Other shootings of police
Three other shootings endangered police around the same time.
In Bristol, Tennessee, a man opened fire on motorists early Thursday at a motel and along the Volunteer Parkway, killing a woman and wounding three people, including a police officer, the Tennessee Bureau of Investigation said.
The TBI said a preliminary investigation reveals the suspect, Lakeem Keon Scott, 37, may have targeted individuals and officers after being troubled by recent incidents involving African-Americans and law enforcement officers in other parts of the country. Witnesses said they heard someone yell, "Police suck! Black Lives Matter!" before bullets were fired, the TBI said.
Scott was wounded by police, arrested and questioned at a hospital, the TBI said.
In the St. Louis area, a police officer was shot in the back of his neck Friday morning by a suspect stopped for a speeding violation, Ballwin Police Chief Kevin Scott said. The officer was walking back to his patrol car when the suspect ran towards him, firing three shots from a semi-automatic handgun, Scott said. The suspect was arrested and the office was in critical condition, Scott said.
In Valdosta, Georgia, a police officer was shot Friday morning by a man who placed a 911 call, the Georgia Bureau of Investigation said. The officer, who is now in stable condition, went to an apartment complex to check on a reported car break-in and was shot twice when he exited his patrol vehicle, the GBI said.
The officer returned fire and wounded the shooter, who was identified as the caller and arrested. The GBI said there was no connection to the Dallas shooting.
The shootings occurred as many Americans nationwide took to the streets to demand answers over the killings of two black men by police in two days. They wept, marched and chanted, "Black Lives Matter!"
The protests continued on Friday. A "die-in" was held near President Obama's residence in Chicago and demonstrators gathered in front of the White House. In Atlanta, a crowd blocked a downtown interstate ramp; CNN staffers on the scene estimated 2,000 people were involved.
In Dallas, protest organizers Friday condemned the violence and said they never imagined someone would attack their peaceful demonstration.
Hood, one of the organizers, said he spent hours searching for his wife as chaos unfolded in the streets.
"Ultimately, I spent those three hours talking to people, asking the question, 'Why? Why? Why is this happening?' The only answer I know now, and the only answer I knew then, was turn to love, we've got to turn to love, we've got to stop shooting."
A protest was also held Friday in London, England.
In Minnesota, crowds gathered near the spot where an officer killed Philando Castile in a car Wednesday.
"We are targets," LaRhonda Talley said Thursdau in an impassioned speech in Minnesota. "We made it across the transatlantic. We made it to freedom and you're still killing us. You're still hanging us from trees. You're still killing us. Our lives matter! My son's life matters. He matters to me ... just like everybody's son matters to their mama."
Hundreds of miles away, protesters marched outside a convenience store in Baton Rouge, Louisiana, where Alton Sterling was fatally shot Tuesday while police tackled him in a parking lot.
Both killings were captured on video and posted online.
In Minnesota, the shooting of Castile was remarkable -- and heartbreaking -- because his fiancée streamed the immediate aftermath live on Facebook.
As her 4-year-old sat in the back seat, Diamond Reynolds calmly narrated what was going on and showed viewers the dying man groaning and bleeding in the front seat.
Castile, a school food services worker, was shot in Falcon Heights, outside Minneapolis, when a police officer pulled him over because of a broken taillight, said Reynolds, who was in the car with him.
"He let the officer know that he had a firearm and he was reaching for his wallet and the officer just shot him in his arm," she said as she broadcast the Wednesday shooting on Facebook.
"Oh God, please don't tell me my boyfriend is dead," she said.
Falcon Heights contracts with the City of St. Anthony Park for police services. Friday, Black Lives Matter held a new conference and called for Falcon Heights to terminate that contract.
Baton Rouge shooting
Sterling, 37, was killed Tuesday near a convenience store in Baton Rouge, where he regularly sold CDs and DVDs.
A homeless man approached Sterling on Tuesday and asked for money, becoming so persistent that Sterling showed him his gun, a source told CNN.
The homeless man called 911 and police arrived at the store. Police tackled Sterling to the ground, and shot him several times, video shows.
A law enforcement source told CNN that the officers pulled a gun from Sterling's body at the scene. No further details were provided on the type of firearm.
The convenience store quickly became the site of protests. Flowers and signs piled up in a makeshift memorial. Protesters chanted "Hands up, don't shoot," the line made famous in the Michael Brown shooting in Ferguson, Missouri, about two years ago. Brown was also shot by a police officer.
Protests against police shootings were held in most major cities, including Chicago and New York, Thursday night.