Matt Sylvester led OSU (17-8, 6-5) with 15 points, including three treys.
Penn State (7-16, 1-9) was led by Geary Claxton with 14 points and 12 rebounds.
The Nittany Lions are in last place in the Big Ten, but every road win is cherished.
"As crazy as this sounds, this is a great win for this team," OSU coach Thad Matta told WBNS radio. "I say that for several reasons. I don't think we played all that well, especially offensively. I thought our defense was really good. We had some miscues there rebounding late in the game, but this is the type of game where you come up here and your shots aren't falling and you can quit defending and it can become a long day. We took the lead early and held it throughout the game. I'm proud of our guys coming up here and getting this road win because this wasn't an easy place to play today."
Penn State's only lead of the game came in the opening minute when guard Ben Luber converted a three-point play for a 3-0 lead.
Ohio State then went on a 10-2 run and held a 10-5 lead. Ivan Harris scored all five of his points during the stretch on a 3-pointer and putback off an offensive rebound.
The Nittany Lions came right back and tied the game at 10-10.
However, the Buckeyes then went on another impressive run -- this time a 12-2 burst led by Sylvester, who scored seven points before breaking a sweat in his sixth-man role. Ohio State now led 22-12, there was exactly 10:00 left in the first half, and things were looking good for the visitors.
But the Buckeyes would go ice cold and score just five more points the rest of the half. Penn State wasn't exactly on fire either and OSU was able to hold on to the lead, 27-22, at halftime.
The Nittany Lions scored the first four points of the second half and OSU was clinging to a 27-26 advantage.
But Foster drained a three and Dials followed it up with a nice left-handed post move for some breathing room at 32-26.
At the 9:06 mark of the second half, disaster struck for Ohio State. Or, at least it looked like it at the time.
Dials picked up his fourth foul and OSU's lead was down to 42-40. It did not look good for the Buckeyes. All season, they've struggled without their big man on the floor.
But this night would prove to be different.
Foster and Tony Stockman knocked down consecutive 3-pointers, giving Ohio State a 48-40 lead with 8:28 left in the game.
Penn State cut the lead to 48-42, but OSU's Jamar Butler drilled a 3-pointer for a 51-42 advantage at the 7:42 mark.
From there, Penn State could get no closer than six points. The probable nail-in-the-coffin was a 3-pointer from Sylvester at the 3:01 mark which gave the Bucks a 58-47 lead (J.J. Sullinger did pick up a technical foul following the play for taunting, however).
Matta explained what was going through his mind when Dials picked up his fourth foul with the game still very much in doubt.
"Terence was having a good night," he said. "The biggest thing as far as Terence was his impact on this game from the offensive block. Because every time he touched the ball, they were bringing everybody: the band, the cheerleaders, everybody was going down there and guarding him.
"I felt like at that point (when Dials picked up his fourth foul) we had to now step up and make some shots. Get some extra passes. We made three 3's in a row and all of those were assisted."
Stockman scored eight for Ohio State, Sullinger and Fuss-Cheatham had five, and Butler had three.
If you're looking for a good sign for OSU's future, here's one: Harris led the Bucks in rebounds with eight.
* Ohio State gets back in action Tuesday when it hosts Indiana at 7 p.m. The Hoosiers (11-10, 6-4) defeated Minnesota 71-56 Saturday to move into fourth place in the conference. Ohio State and Minnesota (16-8, 6-5) are tied for the fifth spot.
Indiana played without star guard Bracey Wright for the second straight game. He has a sprained ankle, but could play against OSU. He tried to give it a go against the Gophers, but had to shut it down after a pregame workout.