Pasini took the early lead from third on the grid, then recovered after being bumped down to fourth to make a clear break by the halfway stage of the 23 laps.
The Italian, whose world title hopes were smashed by an appalling run of bad luck earlier in the year, went on to take Aprilia's 100th 125GP win by 4.774secs - while a furious four-rider fight for second ended with three of them on the floor!
Pole sitter Lukas Pesek was the first to go, after falling on his own, leaving Simone Corsi and world championship leaders Gabor Talmacsi and Hector Faubel to fight for the remaining podium places.
With two laps to go, Talmacsi edged inside team-mate Faubel, who then clipped the back of Corsi - bringing them both down. Talmacsi was thus left to collect second place and the world championship lead, by 10 points, while Corsi was out on the spot and Faubel out of the points.
While the incident was still being replayed, Pasini was already celebrating with his delighted fan club - and a beach chair - at the side of the track.
Race results – Misano:
1. Pasini (Aprilia)
2. Talmacsi (Aprilia) +4.774secs
3. Koyama (KTM) +8.576secs
4. Gadea (Aprilia) +15.819secs
5. Espargaro (Aprilia) +23.972secs
6. Krummenacher (KTM) +25.159secs
7. Bradl (Aprilia) +25.391secs
8. Smith (Honda) +25.513secs
9. de Rosa (Aprilia) +25.994secs
10. Ranseder (Derbi) +26.239secs
33. Webb (Honda) +1min 20.963secs