The game had started brightly for the visiting Rayos, who look the lead less than a minute into the match. After just 48 seconds, Jesús Isijara got free on the right, got around his defender, and scored to make it 0-1.
But after that goal, Pumas took control of the game and they nearly equalized in the 13th minute through a surprise long-distance shot by Josécarlos van Rankin.
The hosts’ rhythm was not disrupted despite the forced substitution of goalkeeper Alejandro “Pikolín” Palacios in the 18th minute with a leg injury, and they gave Necaxa little chance to test substitute netminder Alfredo Saldívar.
The pressure paid off just after the second half began, when Nicolás Castillo finished off a low cross from Jesús Gallardo make it 1-1 in the 47th minute.
Necaxa, who had been sitting back to defend their lead, were forced to adjust their tactics after the equalizer, but they were not up to the task of retaking the advantage.
Instead, in the 68th minute, Pablo Barrera completed the comeback for Pumas when he beat Marcelo Barovero to make it 2-1.
The hosts then sealed the victory with a late golazo from Bryan Rabello, whose rocket from outside the box made it 3-1 in the 89th minute.
With the 3-1 win, Pumas reach nine points while Necaxa remains on three.
Pumas: Alejandro Palacios (Alfredo Saldívar 18′), Josécarlos van Rankin, Gerardo Alcoba, Darío Verón, Alan Mendoza, Javier Cortés, Abraham González, Pablo Barrera (Kevin Escamilla 74′), Bryan Rabello, Jesús Gallardo, Nicolás Castillo.
Necaxa: Marcelo Barovero, Brayan Beckeles, Marcos González, Mario de Luna, Jairo González, Jesús Isijara, Xavier Báez (Claudio Riaño 70′), Manuel Iturra, Luis Gallegos, Fabián Espíndola (Jonás Aguirre 59′), Maximiliano Barreiro (Alejandro Díaz 79′).