This article is more than
7 year oldHouse of Representatives Majority Whip Steve Scalise was hit but expected to survive, witnesses said.
Police in the upmarket Washington DC suburb of Alexandria said they were investigating a "multiple shooting" and a suspect was in custody.
The lawmakers were practising for a game between Democrats and Republicans.
The annual congressional ballgame was scheduled to be played on Thursday at Nationals Park, home of Major League Baseball franchise the Washington Nationals.
An apparent eyewitness on Twitter, @ben_childers, said Wednesday morning's gunfire rang out at the YMCA baseball fields, by the Eugene Simpson Stadium Park.
Local media report there is a major police presence there after the attack.
Alexandria police tweeted: "Suspect is in custody and not a threat."
President Donald Trump said in a statement: "We are deeply saddened by this tragedy.
"Our thoughts and prayers are with the members of Congress, their staffs, Capitol Police, first responders, and all others affected."
White House press secretary Sean Spicer tweeted that the president was being updated on the attack.
Senator Mike Lee, a Utah Republican, texted Fox News to say that Mr Scalise had been shot in the hip and would survive.
He said someone had used a belt as a tourniquet on him.
Kentucky Senator Rand Paul told Fox News: "I do believe without the Capitol Hill police it would have been a massacre.
"We had no defence at all. The field was basically a killing field."
He said they were lucky that Mr Scalise was present because he has a security detail owing to his congressional seniority.
Mo Brooks, an Alabama Republican, told CNN he was on third base during the baseball game when he saw Mr Scalise, who was on second base, shot.
He said Mr Scalise had a bullet hole in his calf, and was saying: "I'm OK, I'm OK."
Mr Brooks said everyone on the field scattered as 50 to 100 shots were fired.
He said a gunfight had ensued between the shooter and the congressmen's police security detail, who were armed with pistols.
CNN reports that two police officers were also shot.
Mr Brooks said the shooter was armed with a rifle and was "blasting away" from behind the dugout, using it for protection.
The congressman, who said he took refuge behind a batting cage, described the attacker as a middle-aged white male "a little on the chubby side".
Mr Brooks said congressmen Chuck Fleischmann, of Tennessee, Ron DeSantis, of Florida, and Jeff Duncan, of South Carolina, were among 15-25 lawmakers at the game.
Asked by a CNN host if the attack was deliberate, Mr Brooks replied: "Well, it sure as heck wasn't an accident!"
He added: "People know this is Republican baseball team practising. You can recognise it, you can see our security detail.
"It's pretty well known in the neighbourhood. So it's not a secret that we're practising over here.
"He was going after elected officials, congressmen."
Mr Brooks continued: "The only weapon I had was a baseball bat and that's not the kind of fight you want to engage in."
Ohio congressman Brad Wenstrup, who served in Iraq as a combat surgeon from 2005-06, provided medical care at the scene.
He told CNN the shooter eventually resorted to a pistol, having apparently used up all his rifle ammunition.
Arizona Senator Jeff Flake told reporters he was at bat during the shooting and the victims were "sitting ducks".
He said the attack had lasted for at least 10 minutes, adding: "He had a lot of ammo."
Alexandria Police Chief Michael Brown said officers responded and engaged the shooter within three minutes.
The last member of Congress to be targeted by a gunman was Democrat Gabrielle Giffords, who was shot in the head as she met constituents in Tucson, Arizona, in January 2011. She survived, but six others died in that incident.
Ms Giffords tweeted on Wednesday: "My heart is with my former colleagues, their families & staff, and the US Capitol Police- public servants and heroes today and every day."
Newer articles