Both victims worked for Vinnell Arabia, a US company providing support to the Saudi National Guard, officials said.
The motive for the attack was unclear. A man was later held after exchanging fire with Saudi security forces.
Saudi officials said the man - named as Abdul Aziz Fahad al-Rashid -  had no known links to "extremist" groups.
Tuesday's shooting happened when the two Americans stopped their car at a petrol station in eastern Riyadh.
Officials later said they had arrested Mr Rashid, reportedly a 24-year-old US-born Saudi national.
The Saudi interior ministry said that the "security authorities have no proven prior links between [Mr Rashid] and extremist organisations".
In a statement, the Saudi embassy in Washington said Mr Rashid had "worked at the same company as the victims, and was recently dismissed from his job due to drug-related issues".
US state department spokesman Jen Psaki said the shooting happened not far from the Vinnell Arabia base in Riyadh.
She said the wounded contractor had been "lightly injured".
"We are in close contact with the Saudi government as we continue to gather details about the shooting and motive," she said.
"We are in the process of evaluating our security posture and will take appropriate steps to ensure the safety of all US mission personnel."
The last reported killings of Westerners by gunmen in Saudi Arabia was in 2007 when three French nationals were shot dead while camping in the north-west.
An American employee of a US defence contractor has been killed and another injured in a gun attack in Saudi Arabia's capital, Riyadh.