Advanced to the FedExCup Playoffs for the second consecutive time in his career, making it to the TOUR Championship for the first time. Entered the Playoffs finale in the No. 12 position in the FedExCup standings and finished T6 at East Lake to end his season No. 12 in the FedExCup standings. Recorded 10 top-25 finishes from 28 starts. Of those, five were top-five showings, including his maiden PGA TOUR victory at the CIMB Classic.
Zurich Classic of New Orleans: Teamed with Ryan Palmer to claim his third TOUR victory at the Zurich Classic on New Orleans. At 26-under 262, posted a three-stroke win over Sergio Garcia/Tommy Fleetwood. Team sat T17 after first-round 64 in Four-ball format but captured solo lead through 36 holes at 15-under following a 7-under 65 in Foursomes, the first score of 65 or lower at the event in that format. Went on to share the 54-hole lead with Scott Stallings/Trey Mullinax. Only previous appearance at the event before victory was a missed cut with Wesley Bryan in 2018.
PGA TOUR rookie claimed seven top-10 finishes in 27 starts to earn a berth into the FedExCup Playoffs. At the BMW Championship, the third of four Playoffs events, finished T13 at Conway Farms GC, but came up just five points shy of finishing 30th in the FedExCup standings and moving on to the TOUR Championship by Coca-Cola. Ended the season ranked 32nd in the FedExCup standings.