Maverick Vinales shrugged off his hand injury from testing to secure second in a photo-finish with Alex Rins.
That trio plus Alex Marquez and Jonas Folger formed a five-bike lead tussle for the whole distance.
Squabbling Monlau team-mates Rins and Marquez led into the final laps, but Laglisse rider Vinales showed his intentions by drafting from fourth to first on the pits straight.
The Monlau bikes slipped ahead again further around the lap, only to be swamped again on the straight, as this time Salom came through to first and Vinales to second.
It looked like another slipstreaming spectacular was in prospect to decide the win, but Salom had other ideas.
A mighty push on his final lap broke the tow and allowed him to cross the line a relatively comfortable 0.417 seconds ahead.
It was far closer for second, as Vinales hung on by 0.006s over Rins. Marquez and Folger followed right behind.
Zulfahmi Khairuddin came back from a disappointing qualifying session to beat Miguel Oliveira and Arthur Sissis to sixth.
Niklas Ajo and Efren Vazquez led the next pack to the flag to complete the top 10.
Second-row qualifier Alan Techer was among the early crashers.