The barricaded suspect was taken into custody and the area was deemed safe early Sunday, police tweeted just after 5:30 a.m. local time. No further information was immediately available about the suspect's capture.
One officer was shot in the head and was "very critically" wounded, St. Louis Police Department Chief John Hayden Jr. told reporters. Police said the officer was "fighting for his life." The other officer was shot in his leg, suffering a non-life-threatening wound.
The officers had responded to a call about gunshots around 6 p.m. local time when a suspect started firing at them.
"While they're on the scene, they hear shots, and our first officer, who is very critically injured, and when I say very critically injured, he’s very critically injured, he was shot. He has a head wound. And that officer is down," Hayden said Saturday night.
"As our brave officers were trying to get him secured, other officers responded to the scene, and another one of our officers was shot in the leg. Both are at area hospitals. Doctors are working feverishly to assist them."
Hayden said eight St. Louis police officers have now been shot since June 1.
"Our officers have been going through a lot this summer, as you know. We've had a surge in violence," Hayden said. "These officers, all they're trying to do is do their job and help a person that's wounded, and they come under gunfire themselves."
Matt Miller, a St. Louis resident who lives near the scene of the shooting, told the St. Louis Post-Dispatch that 75-100 officers had gathered in the neighborhood and blocked off streets.
Gov. Mike Parson offered prayers for the officers and their families.
In response to Hayden's account of the number of officers shot, Parson wrote: "This violence must end! #BackTheBlue."