Amarillo police described the case in the Texas panhandle city as workplace-related violence and said the suspect was shot by its SWAT unit.
The man fired a shot when he entered the store and took two people hostage. The three then moved to an office inside the store, said Deputy Danny Alexander, a spokesman for the Randall County Sheriff's Office.
Police were working to find out more about the suspect, who has not yet been named. There were no reports of anyone else being injured in the incident.
"All customers and our two associates who were held hostage are safe. This was a very difficult situation and we are thankful for the quick response from law enforcement," said Deisha Barnett, a spokeswoman for Wal-Mart Stores Inc.