
The nine-time MotoGP race winner had fallen out with Yamaha and had been due to leave at the end of the season after terminating his contract a year early.
But Japanese manufacturer Yamaha said the team and Vinales had mutually agreed to advance the separation.
“Following recent events at the Styrian GP and after deep consideration by both parties, the mutual decision was reached to separate with immediate effect,” Yamaha said in a statement.
Vinales apologised to Yamaha for the incident at the Styrian GP, saying it was a sad situation triggered by frustration.
Aprilia said on Monday Vinales will race for the Italian outfit next season. The Spaniard has signed a one-year deal with an option to renew and will partner compatriot Aleix Espargaro at Aprilia.
Vinales, who started out in 125cc with Aprilia, won the Moto3 championship in 2013 with KTM. He is seventh overall in the standings, 86 points behind his French teammate and world championship leader Fabio Quartararo.