The six-year contract is subject to the 20-year-old American-born Italian passing a medical on Wednesday.
Rossi was loaned to Newcastle last season and then to Parma, where he scored nine goals in 19 matches.
Villarreal were looking for a new striker after allowing Diego Forlan, another ex-United player, to join Atletico Madrid for £14m.
United signed Rossi as a 16-year-old from Parma and the Italian club were keen to secure his services once again after the striker helped them stay in Serie A last season during his loan spell.