CHAPEL HILL, N.C. -- Tyler Zeller was nearly at his best. Not all of his North Carolina teammates could say the same thing -- even if they were good enough to beat Appalachian State again.

Zeller flirted with a career scoring high, finishing with 31 points and 10 rebounds and leading the Tar Heels (No. 6 ESPN/USA Today, No. 5 AP) past the Mountaineers 97-82 on Saturday night.

John Henson added 17 points for the Tar Heels (9-2), whose third straight win and 22nd in a row at the Dean Smith Center wasn't as lopsided as it could have been.

They shot 54.5 percent, never trailed and led by 29 before allowing Appalachian State to cut deeply into that big lead.

"We were really good for about the last four minutes of the first half and the first 4-5 minutes of the second half," coach Roy Williams said. "And then we went brain dead there for a while."

Omar Carter had 21 points and Mike Neal scored 15 for the Mountaineers (4-6), who lost their fourth straight. They finished 9 of 20 from 3-point range and used a late scoring flurry to cut into the lead.

Second-year Appalachian State coach Jason Capel lost his first matchup against his alma mater. He started for the Tar Heels from 1998-2002 under Bill Guthridge and Matt Doherty, and helped lead the Tar Heels to three NCAA tournaments and one Final Four.

"It's funny because everything they ran, I knew it was coming," Capel said with a laugh. "I'm screaming out everything that was going to happen, but it's a little different. ... For me, personally, once the game starts, once the ball's tossed up, I'm in my zone. I can be anywhere. I'm coaching my team, trying to get a win, but it was good to come home."

Reggie Bullock and P.J. Hairston both finished with 10 points, while Harrison Barnes was held to nine -- the first time he failed to crack double figures this season. North Carolina was playing for the first time in a week after being off for final exams, and Williams said his team practiced only once all week because of the scattered exam schedule.

"As a team, we've got to get better. We've got to be a little more crisp," Zeller said. "At times, we were very, very good. Other times, we played very poorly. It's something that we've just got to be able to get in the rhythm and keep it up for 40 minutes."

Things will pick up in a hurry for the Tar Heels, who started a nine-game homestand that includes three games in five days -- they play Nicholls State on Monday, followed by Texas on Wednesday -- by holding on to remain perfect against Appalachian State, which didn't get closer than 12 in the second half.

"Nothing can prepare you for that," Capel said, referring to both the Smith Center environment and the Tar Heels themselves. "Nothing can prepare you for what you were going to see out there, but we tried to simulate as much as possible. I'm proud because we competed. We didn't (only) play hard. We competed. We didn't take a step back when they punched us in the mouth. We kept coming forward."

North Carolina pulled away from the Mountaineers, going up 20 on Bullock's 3-pointer with 16½ minutes left and taking its largest lead roughly five minutes later when Hairston's free throw made it 75-46.

The Tar Heels then held off Appalachian State's frantic comeback attempt to improve to 5-0 in the infrequent cross-state series, though the previous four victories came by an average of 24 points. They also have won 52 in a row against nonconference teams at home, a streak that dates to 2005.

Kendall Marshall had 13 assists -- his fifth game this season with at least 10 -- and North Carolina is 13-0 when he has at least nine.

Zeller finished one point shy of his previous high of 32 points, which came against Long Island last March in the Tar Heels' NCAA tournament opener. He had 20 points in the first half on 8-of-11 shooting and helped North Carolina build a big lead at the break.

"Coach said the last four minutes of the first half were probably one of the best we've played this year," Henson said. "We've got to learn how to translate that to the course of a game."

The Mountaineers briefly made things interesting late in the half, hitting three 3-pointers in a 2-minute span to pull within 34-30 with 4½ minutes left.

The Tar Heels reeled off 12 straight points and took their largest lead of the half on James Michael McAdoo's steal and dunk that put them up 46-30 in the final minute. Zeller's layup with 2 minutes left made it 48-32 at halftime.

Capel "told us at the beginning of the game that they were going to make a couple runs, and we just had to keep our poise," Neal said.

Andre Williamson and Tab Hamilton each finished with 11 points for Appalachian State.