Grayson McCall threw for three touchdowns, Shermari Jones ran for 149 yards and another score, and No. 16 Coastal Carolina held on to beat Buffalo 28-25 on Saturday for its first road win of the season.

McCall, who entered the day leading the nation in passing efficiency and completion rate, was 13-of-19 passing for 232 yards with his first interception of the season.

CLICK HERE FOR MORE SPORTS COVERAGE ON FOXNEWS.COM

Jaivon Heiligh caught four passes for 91 yards and a touchdown for the Chanticleers (3-0), becoming the fourth receiver in school history to surpass 2,000 career yards.

Buffalo (1-2) got within a field goal with 2:41 remaining. Kevin Marks’ 7-yard touchdown run capped a 92-yard drive that started when Logic Hudgens intercepted McCall in the end zone.

The Bulls rushed for 260 yards, led by career-high efforts from Dylan McDuffie (92 yards, one touchdown) and Ron Cook (83 yards). Marks, Buffalo’s lead back, finished with 64 yards. Kyle Vantrease was 13-of-20 passing for 146 yards.

Jones plunged for a 1-yard touchdown at the start of the fourth quarter to extend Coastal Carolina’s lead to 28-17. Jones’ career-long 50-yard gain on the opening snap of the third quarter led to Isaiah Likely’s 6-yard touchdown catch, the first of the season for the Chanticleers’ all-conference tight end.

Aaron Bedgood scored on a 16-yard sweep on Coastal Carolina’s opening possession and Heiligh caught a 17-yard tying touchdown early in the second quarter.

Buffalo scored on consecutive 84-yard drives in the first quarter to take a 14-7 lead. McDuffie’s 2-yard run and backup quarterback Matt Myers’ 13-yard keeper put Coastal Carolina in its largest deficit of the season.

Chanticleers freshman kicker Liam Gray hit the right upright from 22 yards out on in the second quarter on his first career field goal attempt. Senior kicker Massimo Biscardi (lower-body injury) did not make the trip.

Alex McNulty kicked a 36-yarder for Buffalo in the third quarter after missing from 51 yards earlier.

CLICK HERE TO GET THE FOX NEWS APP

THE TAKEAWAY

Coastal Carolina: Less efficient than they were in scoring 101 points in two home victories, the Chanticleers overcame early miscues and held on late to win their eighth straight regular-season game against a non-conference opponent. It was also CCU’s first win against a team from the Mid-American Conference (now 1-3).

Buffalo: Hosting a ranked opponent for the first time since 2014, the Bulls fall to 1-14 all-time against Top 25 teams. Having broken into the rankings last season and coming off a loss at Nebraska last week, UB is still seeking its first win over an FBS opponent under new coach Maurice Linguist.

UP NEXT

Coastal Carolina: Hosts UMass on Saturday in its final non-conference game before beginning its Sun Belt Conference title defense.

Buffalo: Visits Old Dominion on Saturday.