Cruz Azul won in Estadio Azteca for the first time in eight years.
Villa got both of his goals in three-minute span in the first half as la Maquina landed a pair of early blows that America failed to recover from.
Cruz Azul caught up to Morelia in Group 3 and kept pace with group leaders Pumas, who have 24 points to la Maquina's 18.
Christian Gimenez set up the game's first goal in the 16th minute. Gimenez took a ball from the left flank and whipped a ball to the middle of the box. Villa snapped a header on goal and got past Guillermo Ochoa.
Just three minutes later, Gimenez again started the play on the left flank, slipping a ball to the middle of the box towards Villa. With his left foot, Villa fired a shot past Ochoa and gave Cruz Azul a 2-0 lead.
The match slipped away from America afterward as they were never able to recover from the early goals.
America remained in first place in Group 2 with 15 points.