Zahir Raheem beat Erik Morales by a unanimous decision to call into question the Mexican's hopes of a rematch with Manny Pacquiao.
Morales was beaten for only the third time
The fight had been viewed as a warm-up for Morales before a January bout against Pacquiao, who he beat in March.
But the 29-year-old was sluggish from the start and the judges scored the bout 118-110, 116-112 and 115-113.
This was only the third defeat in Morales' 12-year career - the other two had been to Marco Antonio Barrera.
Morales was fighting as a lightweight for the first time and most of the 10,584 crowd at the Staples Center Arena in Los Angeles were behind him.
But Raheem, a 28-year-old who competed for the US at the 1996 Olympics, quietened them when he caught Morales with a right hand to the head in the fifth.
Morales came back in the 11th round when he landed several right-hand leads and nearly floored Raheem.
It was the only round Morales won on all three scorecards as Raheem returned to win the 12th round.
Pacquiao, who lost his first fight as a super featherweight to Morales on 19 March, had a much easier time against Hector Velazquez.
The Filipino recorded a sixth-round technical knockout on the "Double Trouble" bill.
Pacquiao (40-3-2, 31 KOs) launched a consistent attack of power punches against Velazquez (42-11-3), which paid off in the sixth round.
Pacquiao connected with a right hook that stunned the Mexican with just over a minute left.
The former featherweight champion seized the opportunity and battered Velazquez before flooring him with a left just before the bell.
The referee called it a knockdown and stopped the fight after the count of eight.
And Hawaii's Brian Viloria knocked out champion Eric Ortiz of Mexico in the first round to win the WBC light flyweight championship at Staples Center.
Viloria was fighting for the first time since May, when Ruben Contreras quit in the sixth round and had a seizure after the fight.
Contreras sat ringside after accepting Viloria's invitation to attend Saturday's fight.
Viloria and Ortiz had a few brief exchanges in the first round, but neither was especially aggressive and both looked to be settling in for a long fight.
But Viloria connected with a pair of right hands and floored Ortiz in the last second.
Ortiz did not get up until well after the bell.
Viloria, 24, improved to 18-0 with 12 knockouts, and Ortiz dropped to 24-5-1.