Nadal, playing his third tournament since a seven-month lay-off with a knee problem, saw off the challenge of his Argentine opponent 6-1 7-5 in an hour and 41 minutes.
"I'm enjoying playing tennis again," Nadal said. "When you are recuperating there are always going to be bad days, but right now there are more good days than bad."
The world number five flew through the first set, winning 87 per cent of his first-service points and not dropping a single point on his second serve.
Mayer, currently ranked 77 in the world, offered more resistance in the second set and even forced two break points, but was unable to take either one.
Nadal, who won the Brazil Open title last month, had three chances of his own but needed just one in the end, taking it at 5-5 before serving out for the win.
The second seed, appearing at the tournament in Mexico for the first time since he won it in 2005, now meets compatriot and third seed Nicolas Almagro for a place in Sunday's final.
The Mallorcan has never lost to Almagro in their eight previous meetings.
Almagro, himself a two-times title-winner in Mexico, saw off Horacio Zeballos of Argentina 6-3 6-4 to set up the mouth-watering semi-final.
The world number 12 called on his trusty serve, sending down 10 aces on the red dirt on his way to sealing victory in 70 minutes.
In the other half of the draw, David Ferrer continued his march towards the final, beating Italy's Paolo Lorenzi 6-3 6-1.
Ferrer, who has gone one better than Almagro in winning the tournament three times, made it 18 wins on the bounce in Acapulco despite going down a break early on in the opening set.
He ended the clash with five breaks to his name and will now meet another Italian Fabio Fognini, after he beat Santiago Giraldo of Colombia 7-5 6-4.
Acapulco International results
2-Rafa Nadal (Spain) beat Leonardo Mayer (Argentina) 6-1 7-5
3-Nicolas Almagro (Spain) beat 8-Horacio Zeballos (Argentina) 6-3 6-4
Fabio Fognini (Italy) beat Santiago Giraldo (Colombia) 7-5 6-4
1-David Ferrer (Spain) beat Paolo Lorenzi (Italy) 6-3 6-1