A push from the Detroit Pistons, an MVP performance by LeBron James and a putback by Dwyane Wade decided an NBA All-Star game that went down to the final seconds.

Trailing by 21 points, the East rallied for a 122-120 victory Sunday night behind King James and the Pistons' Fab Four.

With the score tied, Allen Iverson was off-target on a jumper, but Wade darted into the lane for the rebound and the go-ahead basket with 16 seconds left.

Still, the East didn't wrap it up until hometown hero Tracy McGrady of the Houston Rockets missed a jumper with the clock ticking down. Kobe Bryant then had the ball slip out of his hands for a turnover, and it hardly mattered that Vince Carter missed a breakaway dunk on the other end just before the buzzer.

McGrady led all players with 36 points. The 21-year-old James, in his second midseason showcase, scored 29 and became the youngest All-Star MVP.

"It was more impressive that we came from, at one point, 21 points down and willed ourselves to a win," James said.