First to be shot was a policeman who stopped the gunman’s car between the cities of Midland and Odessa.
The gunman went on to shoot at numerous motorists and passers-by. At one point, he abandoned his car and stole a postal truck before continuing his spree.
He was shot dead by police at a cinema complex.
The motive of the gunman, who was white and in his mid-30s, is unclear.
Four weeks ago, 22 people were killed by a gunman in the Texan city of El Paso.
About 20 people were injured – three of them police officers – in this latest incident of gun violence in America, although the police say not all of them were shot. Some may have been cut by glass as their car windows shattered when they were hit by bullets.
Odessa’s Medical Center Hospital said a child under the age of two was among those being treated there. Seven of its other patients are in a serious condition.
Police said Saturday’s incident began at just after 15:00 local time (20:00 BST) after two Texas Department of Public Safety officers pulled over a vehicle on a Midland highway.
The driver then opened fire on the officers and, after driving away, began shooting at other people in several locations.
Texas Attorney General Ken Paxton said in a statement that he was “horrified to see such a senseless act”.
In another statement, the state’s Governor Greg Abbott said: “We will not allow the Lone Star State to be overrun by hatred and violence. We will unite, as Texans always do, to respond to this tragedy.”
In a tweet, US President Donald Trump said he was being kept informed about the shootings in Texas.
Just briefed by Attorney General Barr about the shootings in Texas. FBI and Law Enforcement is fully engaged. More to follow.
— Donald J. Trump (@realDonaldTrump) August 31, 2019
Later, Vice President Mike Pence said he and the Trump administration “remain absolutely determined to work with leaders in both parties in Congress to take steps that we can address and confront this scourge of mass atrocity in our country”.