Officers responded to the store about 10.12pm Tuesday (2.12pm Wednesday AEDT) and found evidence of a shooting inside, Chesapeake Police public information officer Leo Kosinski told CNN.
The officers entered the store and discovered multiple people dead and injured, Kosinski said.
The store in Chesapeake is now safe, he said early on Wednesday.
Earlier, Kosinski said he couldn’t say how the gunman died but that he didn’t believe police fired shots.
The shooting had apparently stopped when police arrived at the store in Chesapeake, which is Virginia’s second-largest city and lies next to the seaside communities of Norfolk and Virginia Beach.
Mike Kafka, a spokesman for Sentara Healthcare, said in a text message that five patients from the Walmart were being treated at Norfolk General Hospital. Their conditions weren’t immediately available.
Walmart tweeted early Wednesday that it was “shocked at this tragic event”.
US Senator Mark Warner said in a tweet that he was “sickened by reports of yet another mass shooting, this time at a Walmart in Chesapeake”.
State Senator Louise Lucas echoed Warner’s sentiment, tweeting that she was “absolutely heartbroken that America’s latest mass shooting took place in a Walmart in my district”.
Earlier in the year, the country was shaken by the deaths of 21 when a gunman stormed an elementary school in Uvalde, Texas.
Tuesday’s shooting also brought back memories of another at a Walmart in 2019, when a gunman police say was targeting Mexicans opened fire at a store in El Paso and killed 22 people.