The win at Estadio Azteca ensured that Mexico won both their Nations League matches of the break after a 5-1 win at Bermuda last week. El Tri (2-0-0, six points) has command of Group B over Panama (1-0-2, six points) and Bermuda (1-0-2, six points).
Mexico manager Gerardo "Tata" Martino relied on squad that featured several Liga MX-based youngsters like Alvarado and Macias.
Alvarado got Mexico on the scoreboard in the 28th minute when a shot from the top of the penalty area.
Mexico gifted the visitors a goal right before the break when Carlos Salcedo knocked an own goal off Edgar Barcenas' attempted cross.
Hirving Lozano left the match in the 62nd minute after Fidel Escobar came down hard on the Napoli star's left ankle. Although he was stretchered off the field, he was later seen walking out the stadium without any assistance.
Macias, who came in Lozano, scored in the 75th minute for the go-ahead goal for Mexico and his fourth in three matches for El Tri.
Rodolfo Pizarro sealed the game with a stoppage goal in the 93rd minute.
Mexico's next Nations League match comes on Nov. 15 when they host Bermuda, and then travel to Panama four days later.
The four group winners of the Nations League advance to the knockout round semifinals in June 2020.