The two snipers opened fire from 'elevated positions', picking off officers as they manned the demonstration in downtown Dallas on Thursday evening, police chief David Brown said.
Three cops have died, three are in a critical condition and the four others were injured, with two of the officers in surgery.
Both shooters are still on the run and one, wearing tactical gear and a bulletproof vest, is hunkered down in a garage, a police source told Fox 4.
The shooting started at 8.45pm as hundreds of protesters marched through Dallas demanding justice for two black men shot dead by police earlier this week.
Horrifying footage shows protesters chanting 'hands up, don't shoot' before suddenly scattering as shots are fired near Belo Garden Park.
Another video captures semi-automatic gunfire ringing out, with dozens of shots heard as people scream and run for cover.
It is not known if the shooters were protesters.
Live TV coverage of the protesters peacefully marching along a street in downtown Dallas suddenly showed the crowd scattering as they sought cover after the shots were fired.
Hundreds of people had marched through Dallas peacefully earlier on Thursday, demanding justice for Alton Sterling and Philando Castile, who were shot dead by police.
For the third night in a row, thousands of people protested outside the store in Baton Rouge where Sterling, 37, was shot dead by police in the early hours of Tuesday morning.
Meanwhile tensions continued to escalate in St Paul after the shooting of Philando Castile, where hundreds more people marched through the streets with signs labeling police officers 'murderers'.
The huge swell of protests is in response to the shootings of Sterling and Castile, who were both apparently not posing a serious threat to police officers when they were fatally shot.