Poulter, who finished at 10-under 274, had led after each of the first three rounds in an event that had three days of stoppages at the Sentosa Golf Club.
Players turned in their third and fourth rounds Sunday because of weather delays earlier in the event.
The win was the 33-year-old Poulter's first in three years.
Liang closed with a 70 and a total of 275.
Adam Scott (68) and Scott Hend (69) shared third place at 276 and Charl Schwartzel (69), Anders Hansen (70) and Graeme McDowell (74) tied for fifth at 277.
"I was getting angry," Poulter said, referring to a stretch of four bogeys in six holes.
A 30-foot birdie putt at No. 13 helped the Englishman move back on top.
"It pumped me up," Poulter said. "(But) I don't know if it calmed me down."
Copyright 2009 by United Press International.