Jon Rahm took advantage of mistakes by rookie Davis Thompson over the adventuresome final three holes and closed with a four-under 68 to win The American Express by one stroke, his second PGA Tour win in as many starts this year.
The Spanish star pumped his right fist and flashed a look of relief after tapping in for a two-putt par on No.18 on Sunday.
The pair were were tied with three holes to play when Thompson, who led through 36 holes and shared the lead with Rahm going into Sunday, pulled his drive into a deep fairway bunker on the par-five 16th and wound up with par. Rahm made birdie to take the lead.
On the par-three 17th, Thompson chose to leave the pin in for his 50-foot birdie putt on the island green, and the ball squarely hit the pin and rolled away.
The 23-year-old from Georgia dropped his putter and put his hands to his face. As he walked to the 18th tee after tapping in for par, he pulled his shirt up over his mouth in frustration.
Rahm hit his tee shot into the bunker on 18 but recovered nicely with a shot to 15 feet and pumped his fist.
Thompson's drive found the fairway but his approach bounced on the green and ran down the slope to the rear. The rookie hit a bold flop shop that settled a foot to the right of the hole. He shot 69.
Rahm had two putts to finish at 27-under 261 and win for the ninth time on the PGA Tour. He moves up one spot to No.3 in the world.
The 28-year-old opened with two birdies to take the lead, but Thompson eventually caught up to him when Rahm's par putt lipped out on 13.
Rahm now has won four of his last six starts; he took the Sentry Tournament of Champions in Hawaii to start the year, and won twice on the European tour at end of last year. This was his seventh straight top 10 worldwide, a streak that began after the Tour Championship in late August.
Xander Schauffele, two weeks after he withdrew because of back pain, closed with a 62 and finished two behind with Chris Kirk (64).
Taylor Montgomery was challenging Rahm and Thompson until he put his tee shot into the water on the 17th. He closed with a 66 and finished fifth.
Jason Day closed with a five-under 67 to be the top-placed Australian at 20-under, seven off the pace in a share of 18th place.
Day sizzled through an unblemished front nine in six-under 30, but couldn't add to those six birdies coming home, dropping a shot on the par-four 10th before carding eight straight pars.
Compatriot Harrison Endycott finished equal-22nd, a shot further back, after a six-under 66 on Sunday, featuring four birdies in a bogey-free front nine, and three more birdies on the back nine and a bogey five at 16.
Australia's Aaron Baddeley finished in a tie for 50th after a two-under 70.