The field was drawn apart by a series of tough climbs between Ayer Keroh and Ampang, the third proving the key as many contenders fell away.
That allowed Lapthorne to pull clear but, with 3km remaining, Colombian Serpa chased him down to take the lead and hold him off to the finish.
A second group of five riders finished 11 seconds behind, with Matteo Rabottini - who had led an earlier breakaway - the best of the rest to claim the final podium place; Alexandr Dyachenko was in that second group to climb to third overall, 46 seconds off the lead.
Thomas Danielson of the USA lies second, 37 seconds off Lapthorne after finishing in the third and main group, 24 seconds off the winning time.
"I'm happy," Androni Giocattoli's Serpa said afterwards. "I had great legs and I found the opportunity to overtake the lone leader with 3km to go.
"I hope to repeat the scenario of 2006: winning at Genting the day after a flat stage finish."
Lapthorne denied giving up the stage win in return for the help of Serpa to break up the field.
"There was no deal for Serpa to take the stage win and myself the lead. My priority was to win the stage," he insisted.
"Second behind Serpa cannot be a disappointment. To lead now is a nice result for our Drapac team."
American Zabriskie, who had led the GC by a minute before the tough session, had a nightmare stage, one of several riders dropped by the climbs and finishing over 19 minutes off the pace.
The Garmin-Barracuda rider came second-last on the day and ultimately fell out of overall contention, dropping to 115th.
Australian Lapthorne, who had been third before Tuesday, leapfrogged Zabriskie to the top after Drapac team-mate Adam Phelan - who had been second - dropped out before the stage.
Andrea Guardini, who had won the three previous stages, struggled on the climbs and was never in contention.
1. Jose Serpa 4:32:17
2. Darren Lapthorne s.t.
3. Matteo Rabottini +11s
4. Adiq Othman s.t.
5. Alexandr Dyachenko s.t.
6. Victor Nino Corridor s.t.
7. Ghader Mizbani s.t.
8. 53 riders on +24s inc. Tom Danielson
123. David Zabriskie +19:35