LaDainian Tomlinson ran for two touchdowns and passed for one in the Chargers' fifth consecutive win.
Tomlinson threw a 19-yard touchdown to Antonio Gates to tie it at 14 with 9:46 left. Four plays earlier, Vincent Jackson nearly gave the ball away.
On fourth and 2, he made a diving 13-yard catch, rolled to the ground untouched, stood and spun the ball forward in celebration. Oakland's Fabian Washington jumped on the ball. But the officials ruled it an illegal forward pass, and San Diego retained possession.
After the Chargers forced a punt, Tomlinson broke a 44-yard run. Five plays later, he went 10 yards untouched for the go-ahead score.
NOTABLE: Tomlinson has 21 touchdowns in his past seven games, and his 24 this season are four fewer than Shaun Alexander's record set last season. He also has thrown six touchdowns in his career, three against Oakland.