Brooks, who represents Alabama's 5th district, said he heard a "loud bam" as he prepared to take batting practice along the third base line of the baseball field at a high school in Alexandria, Virginia.
"I see a rifle, then I see a little bit of a body and then I hear another 'blam' and then I realized there's an active shooter," said Brooks, speaking on CNN's "New Day" minutes after police had secured the scene.
"At the same time, I hear Steve Scalise
over near second base scream. He was shot," added the Republican congressman.
Brooks said the gunman then seemed to pursue individuals on the baseball field before being shot by an armed Capitol Police officer, who himself may have been wounded.
"I look up and there is a guy with a gun blasting away," said Brooks. "Fortunately it was one of the good guys. One of our security details who was shooting back ... there must have been 50-100 shots fired."
"Eventually it seems that the shooter shot both of our security detail people," he continued. "[T]he shooter starts circling around third base... The shooter starts coming around home plate to where we are... and my understanding is that is where our security detail... took him down."
Two law enforcement sources told CNN the shooter, who is in police custody, has been taken to a hospital.
Scalise, a member of the House Republican leadership as the majority whip, appeared to have been shot in the hip and it appeared two Capitol Hill police agents were shot, according to Brooks.
Brooks also described Scalise dragging himself roughly 15 yards away from second base, where he had been playing, and lying there until the shooter was neutralized, at which point some of them ran to assist Scalise and apply pressure to the wound until he could be evacuated.
Sen. Jeff Flake told CNN that once they were able, he and Rep. Brad Wenstrup, who is a physician, went out
to where Scalise was lying to apply pressure to his wound. Scalise was coherent the whole time, Flake said.
Members of Congress were practicing for a game against congressional Democrats that was scheduled for Thursday night at Nationals Park. It was not immediately clear whether it would go on as scheduled. The annual game
has been played since 1909.