It didn’t really matter who was at quarterback in the second half for Ball State.

As long as they could turn it around and hand it off to running back James Gilbert, they were OK.

The sophomore ran 34 times for 264 yards and two touchdowns to lift Ball State (4-3, 1-2 MAC) to a 31-21 win at Buffalo (1-5, 0-2 MAC) Oct. 15. It was the second-most rushing yards in a game in Ball State history, behind only MiQuale Lewis's 301-yard performance in 2009.

"I'm glad he's on our team," said head coach Mike Neu. "I love the way he plays the game. But [Gilbert] is like that in practice, that's what people don't see. ... You preach for guys to come out and give that kind of effort in practice, and that's why you see the results paying off for [Gilbert]."

Buffalo’s defense entered the day third-to-last in the country in rush defense, allowing 271.2 rushing yards per game. But in the first half, they limited Gilbert to 43 yards on 14 carries.

"I was personally getting frustrated with myself because I felt like I wasn't hitting it," Gilbert said. "But coaches said we were gonna stick with the run, and we started gashing 'em."

The Mid-American Conference leader in carries and rushing touchdowns did exactly that.

Gilbert busted through the right side of the line late in the third quarter, cradling the ball in his right arm as he outran the Buffalo defenders and “flew” into the end zone for a 21-14 lead, acting as if he were an airplane to celebrate his career-long 80-yard touchdown. It was Ball State’s longest rush since the 2010 season.

He would’ve had another touchdown the previous drive, but was stopped inside the five after a 50-yard gain. That set up sophomore quarterback Riley Neal for a 4-yard rushing touchdown to tie the game 14-14.

"On the 50-yarder, [Neal] was like, 'Dang, you got caught, you must be slow after all,'" Gilbert said with a laugh. "On the next drive, I got a big one and was like, 'I'm not getting caught this time.'"

After Neal threw two interceptions in the first half, Neu said the coaches had a conversation about inserting redshirt junior Jack Milas at quarterback.

Neal's first pick was a result of pressure on the throw, but he tried to force the second into traffic on the last drive of the first half. Instead of getting a touchdown or field goal, the Cardinals went into the break down 14-7.

"I just tried to force something," Neal said. "Something hopefully we'll go through only once."

They decided to take it drive-by-drive in the second half, but Neal stepped up. He finished 12-22 for 212 yards to go along with 44 rushing yards and two scores on the ground.

"I'm tough on him, I'll be the first to tell you," Neu said. "He's done a lot of growing up, but he's also got to understand we can't have two turnovers and put our defense in a bad situation. They did a great job of giving us an opportunity in the second half."

As the Cardinals’ offense scored 24 consecutive points in the second half and racked up 568 total yards in the game, it was the defense giving them that chance. Buffalo turned the ball over on downs on three of its first four possessions of the second half.

The Bulls also gained 459 total yards, well above their season average, but Ball State’s ability to keep them out of the end zone made the difference.

"When anybody makes a big play, everybody feeds off it," said senior linebacker Sean Wiggins. "So that helps get momentum on our side, especially when it's on their side. It really sparks everybody up and gets them going."

Ball State gave up a 39-yard touchdown pass late, but Gilbert continued to pound the rock and sealed the comeback win.

On the sideline in the second half, Neu cracked a smile — the smile of a coach who just earned his first MAC win.

"The credit goes to our players," he said. "For knowing the second half, we're better than that. But it's an emotional game. ... You want to get a win, period."