Lopez, a former world champion at super bantamweight and featherweight, takes his record to 32-2 with 28 knockouts.
It was his first fight since March 2010 following a suspension for accusing a referee of having a gambling problem.
Lopez was suspended after a second loss to Orlando Salido for making allegations that referee Roberto Ramirez was gambling when interviewed within seconds of the fight's 10th-round stoppage.
The 29-year-old knocked Brazilian Santos down with an impressive flurry with 1:04 left of the ninth.
"I won't deny that I went through a period of frustration but you have to pay attention to your corner," Lopez said.
"What I was used to doing is hitting them high but in this case what we've been working on in the gym is not to fight like that. More calm, take it round per round, three or four combos at most."