Cabrera, of Argentina, fired three birdies and two bogeys to finish with a three-day total of 9-under 204 at the $4 million Singapore Open at Sentosa Golf Club.
"I had to work my way around, it was tough, the winds were picking up and the greens are getting very hard," said Cabrera, who made a 25-foot birdie putt at No. 17.
"I'm feeling comfortable. I'm hitting the ball well. I've got a four-shot lead, so that's a bit of a cushion for tomorrow."
Four strokes behind in second place was Jin Park of the United States who had three bogeys and one birdie for a 1-over 72 at the remodeled 6,7**-yard, par-71 Serapong Course.
Phil Mickelson, who was six strokes off the pace at the start of the round, slipped further down the leaderboard after four bogeys, but got back into a tie for 11th place with birdies on the final two holes for a 2-over 73.
Mickelson's tee shot on the par-3 17th glanced off the flag and rolled 3 feet away from the hole, denying him a hole-in-one. He finished with an even-par 213.
"I fought hard today even though I didn't play as well as I wanted to," Mickelson said.
But Mickelson's caddie Jim MacKay had to drop out in the middle of play because of an upset stomach.
"It's the first time in 15 years that he wasn't able to finish a round," Mickelson said of Mackay. Mickelson added that he has been suffering from stomach cramps and headaches, exacerbated by the tropical heat. Mickelson's replacement caddie was his father-in-law, Gary McBride.
An eagle on the final hole lifted Briton Lee Westwood into third place, 4 under.
Westwood briefly overtook Park for second place after four birdies and three bogeys, but slid after a triple bogey on the 185-yard 17th, rated the course's easiest hole.