Police in the upmarket Washington DC suburb of Alexandria said they were investigating a "multiple shooting" and a suspect was in custody.
US media said House of Representatives Majority Whip Steve Scalise and aides had been hit by gunfire.
Police tweeted they were "investigating multiple shooting 400 block E Monroe St. Suspect believed in custody."
An apparent eyewitness said on Twitter that gunfire rang out at the YMCA baseball fields, by the Eugene Simpson Stadium Park.
Local media report there is a major police presence after 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.
Mr Lee said the shooter had used a long gun and was dead.
White House press secretary Sean Spicer tweeted that President Donald Trump was being briefed.
"Both @POTUS & @VP are aware of the developing situation in Virginia. Our thoughts and prayers are with all affected," Mr Spicer tweeted.
Representative 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 everyone on the field scattered as 50 to 100 shots were fired.
Mr Brooks said a gunfight ensued between the shooter and the congressmen's police security detail.
CNN reports that two police officers were also shot.
Mr Brooks said the shooter was armed with a rifle and opened fire 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 Senator Rand Paul, of Kentucky, and congressmen Chuck Fleischmann, of Tennessee, Ron DeSantis, of Florida, and Jeff Duncan, of South Carolina, were also at the game.