The I.C. Aprilia rider, who had qualified fifth on the grid at Shanghai, spent the early part of the race battling for the lead with world champion Gabor Talmacsi and pole sitter Bradley Smith.
A devastated Smith fell from third place on lap 7 of 19, with Iannone then shaking off Talmacsi just after the midway mark. The Italian, in his fourth season of grand prix racing, went on to take his first every grand prix victory - and podium - by 3.355secs over Mike di Meglio.
The Frenchman had overtaken Talmacsi shortly after the halfway stage, but the Hungarian mounted a late charge to finish just 0.096secs behind the Derbi rider at the chequered flag.
World championship leader Simone Corsi was forced to retire early in the race after being hit at the chicane, reducing his advantage to nine points over Joan Olive and Nicolas Terol.
Race results - Shanghai:
1. Iannone (Aprilia)
2. di Meglio (Derbi) +3.355secs
3. Talmacsi (Aprilia) +3.451secs
4. Espargaro (Derbi) +14.028secs
5. Bradl (Aprilia) +23.853secs
6. Olive (Derbi) +31.962secs
7. Ranseder (Aprilia) +33.758secs
8. Terol (Aprilia) +34.696secs
9. de Rosa (KTM) +34.838secs
10. Vasquez (Aprilia) +41.011secs
Smith (Aprilia) DNF
Webb (Aprilia) DNF
Redding (Aprilia) DNF