A 3-pointer by Thunder forward Paul George with less than two minutes left got Oklahoma City within four. Westbrook missed a shot for the Thunder, but George stole the ball from Harden and was fouled.
George made both free throws to get the Thunder within two with 43.6 seconds left. Harden then drove past George and into the lane for a layup to make it 112-108, eventually holding on for a 4-point win.
George finished with 28 points and 14 rebounds for the Thunder, and Westbrook added 21 points, nine rebounds and nine assists.
Harden became the first player to score 40 or more points on Christmas since Kevin Durant had 44 for the Thunder in 2010. Harden's latest big game came as the Rockets played without Chris Paul, who missed his second straight game with a strained left hamstring.
Harden has scored 30 points or more in seven straight games, marking the first time a player has done that since Russell Westbrook had eight consecutive 30-point games in November 2016.
For the Rockets, Clint Capela had 16 points and tied a season high with 23 rebounds.
RELATED: Rivers will make Rockets debut on Christmas
Making his debut since signing with the Rockets, Austin Rivers finished with 10 points and two rebounds.
The Rockets are now 18-15 and tied for seventh in the Western Conference.