COLUMBUS, Ohio -- Ohio State was expected to cruise past Alabama-Birmingham in its final tune-up before the start of its Big Ten schedule, but the Blazers wouldn't go down easily Saturday.

The slow starts that have plagued the No. 16 Buckeyes in non-conference play continued for the fourth straight week before a 21-point second quarter and just enough defense helped Ohio State avoid an upset with a 29-15 victory before 105,019 less than raucous fans in Ohio Stadium.

The Buckeyes (4-0) trailed for much of the first half but scored three rushing touchdowns to grab a 21-12 lead at halftime and then held off the Blazers in the second half despite being outgained 403-347 in total yards for the game.

Ohio State coach Urban Meyer was relieved with the win that kept his team undefeated heading into its first road trip of the season next Saturday to Big Ten rival Michigan State.

"The fact is, we're a bend-but-break defense, which is painful to watch," Meyer said. "We missed too many tackles today again. We're not a methodically dominating offense. We're not a very good offense right now and we're got to get a lot better fast."

UAB (0-3) closed to 21-15 early in the fourth quarter on a 34-yard field goal by Ty Long, but Ohio State iced the game on a 1-yard touchdown run and two-point conversion by Braxton Miller with 5:03 left.

"He's a dynamic athlete," Meyer said of Miller. "He's got great acceleration. He's got an uncanny ability to make guys miss. He's without question one of the best athletes in college football."

The sophomore quarterback, who led the Big Ten in rushing after three weeks, completed 12 of 20 passes for 143 yards and ran for 64 yards on 11 carries and two touchdowns. Running back Jordan Hall gained 105 yards on 17 carries in the second game back since recovering from a foot injury.

"Our game plan for the day was to attack the quarterback and stop him because he is mainly their offense," UAB safety Calvin Jones said. "We did that in the beginning and I don't believe he had any yards in the first quarter. Ohio State kept progressing and we kept fighting against them. I don't think we will see anyone as good as him."

UAB backup quarterback Austin Brown held his own against Ohio State's defense, completing 21 of 35 passes for 196 yards with one interception. However, the Blazers' offense failed to score a touchdown, and nine penalties for 99 yards derailed several drives.

"We seem like a very passive team," Meyer said. "They didn't score a touchdown on our defense, but we give up a lot of yardage. I sit there and I'm pained watching it. But we've got to be more aggressive and play snugger coverage."

In the first quarter, UAB stunned the Buckeyes when Jones blocked a Ben Buchanan punt and Nick Adams returned it 20 yards for a touchdown and a 6-0 lead.

"We're not coming out with enough energy. Somebody's got to get our energy to rise," Miller said. "Our mind-set isn't where it needs to be at the start of the game."

The Blazers boosted their advantage to 9-0 and unsettled the crowd when Long drilled a 47-yard field goal.

"This isn't a finely tuned machine," Meyer said. "It hasn't been for a while, really on both sides of the ball. We've got to develop a finely tuned machine. Obviously, there's some growing pains."

Ohio State responded with a 10-play, 75-yard drive that culminated with a 1-yard scoring run by Rod Smith to close to 9-7 with 6:31 left in the first half. The touchdown was Smith's first since the 2011 opener. He finished with 24 yards on six carries.

A 54-yard field goal by Long -- the third longest in Ohio Stadium history and the longest ever by a UAB kicker -- extended the Blazers' lead to 12-7.

But the Buckeyes ended the half with a flourish. They marched 75 yards in 1:54 to a 12-yard touchdown run by Miller to go up for the first time, 14-12, with 1:50 left in the second quarter. After a UAB fumble on the ensuing possession, Ohio State scored again on a 2-yard run by Zach Boren for a 21-12 halftime lead.

"We've been barely scraping by," Miller said. "We know we have to improve - myself and the offensive line are included in that. We need to execute better. The schemes are there, but it's about us doing everything right and not making mental mistakes."

Ohio State's defense was affected by injuries that kept three starters out of the game. The Buckeyes had one sack - by cornerback Doran Grant - after getting six against Cal. Linebackers Ryan Shazier (13) and Etienne Sabino (11) combined for 24 tackles and Johnathan Hankins contributed 10. But missed tackles were a problem that the defense have yet to solve.
"I thought we'd be further ahead," Meyer said of the Buckeyes' progress after four games. "But it is what it is. We've got to get better and get better fast. But the guys enjoyed the win. We're 4-0."

Notes: Ohio State safety C.J. Barnett and cornerback Bradley Roby sat out with a sprained ankle and sore shoulder, respectively. Running back Carlos Hyde (knee) and defensive lineman Michael Bennett (groin) missed a second consecutive game. ... UAB offensive line coach John Peterson was on the opposite sideline in Ohio Stadium after spending eight seasons as Ohio State's tight ends coach/recruiting coordinator from 2004 to 2011. The former Buckeyes lineman was not retained when Urban Meyer took the head-coaching job last November. ... The Blazers lost to a top-25 opponent for the second week in a row. They were routed 49-6 at South Carolina a week ago. ... Ohio State now has beaten 21 of 22 first-time opponents in Ohio Stadium in the past 25 years. The lone loss was to Texas in 2005. ... Meyer is the first first-year Ohio State coach to start 4-0 since Earle Bruce in 1979.