Hafner was in the starting lineup as the designated hitter for the Indians' game at the Baltimore Orioles.
"We'll probably go every other day for a little bit, then back to back, then some three in a rows," he said before the game. "I'm excited to be back. ... We've got a lot of young guys swinging the bat well lately."
He was fifth in the lineup.
"Just to have him in the middle," manager Eric Wedge said. "Doesn't have to be in that three-hole right away. It's been a long time since he's hit. I think it's a good spot for him here, initially. Doesn't mean he's going to stay there. Depending on the lineup, he could move around."
Hafner hit .217 with four homers and 22 RBIs in 46 games before going on the DL list in late May. An examination showed he had almost no strength in his right shoulder.
Hafter worked hard to return, and now he gets to take his cuts at the plate for the final three weeks of the season.
"Hitting is my favorite thing to do, so to not do that for a couple months gets pretty boring," he said. "It's a situation you're in -- you've just got to do all the rehab, build strength and endurance."
A .290 career hitter, Hafner averaged 32 homers and 108 RBIs over the previous four seasons.
Hafner hit .318 with four RBIs in a rehabilitation assignment with Triple-A Buffalo last month.
After Buffalo's season ended, he played in two playoff games for Double-A Akron, going 2-for-6 with two home runs and six RBIs, helping the Aeros advance to the Eastern League championship series.
"All in all," he said, "it went pretty well."