Sowers pitched eight innings of four-hit ball and Hafner had two singles in his long-awaited return from the disabled list to lead the Indians over the Baltimore Orioles 6-1 on Tuesday night.
Sowers (3-8) gave up one run, struck out seven and walked one. The left-hander was 1-5 with a 7.43 ERA in nine road starts and 0-2 with a 9.50 ERA in four career appearances against the Orioles.
"I don't think it really matters how you've been pitching. When you pitch well, you pitch well," Sowers said. "I'm proud of it. It's nice to be able to command all three pitches. That hasn't happened too often."
It was the most effective outing of the season by the former No. 1 draft pick, who is seeking to regain the form he displayed while going 7-4 in 2006.
"That's the way you love to see Jeremy pitch. It goes back to what we've always talked about -- being able to command his fastball, move it left to right on the plate, up and down," Cleveland manager Eric Wedge said. "He did a pretty good job of strike one today; he worked ahead for the most part."
Sowers twice retired 10 consecutive batters. He threw 96 pitches, 72 for strikes.
"He just kept going. He didn't alter anything," Wedge said. "I think his focus, his mind-set, stayed the same. That's what you like to see your starting pitcher do."
Hafner went 2-for-4 with a walk in his first game since May 25, when he was placed on the DL with a strained right shoulder.
"He looked good, [took] a couple of strong swings," Wedge said. "I felt like it was a great start for him in regard to him getting back with us and getting back into the swing of things here at this level."
A career .290 hitter, Hafner was batting .217 at the time of the injury. Batting fifth, he had a role in three different innings in which the Indians scored.
"I think when you put somebody like that in the middle of the order, his presence does help the people around him," Wedge said.
Cleveland's Shin-Soo Choo went 0-for-5, ending his 12-game hitting streak and run of 28 straight games reaching base safely.
Ramon Hernandez drove in the lone run for the Orioles, who have lost 14 of 16.
Baltimore starter Radhames Liz (5-5) allowed four runs, three earned, and eight hits in 4 2/3 innings. He walked three, upping his season total to 44 in 65 innings.
In his previous outing, the right-hander allowed nine runs in 3 1/3 innings against Boston.
"Liz was improved. To his credit, he battled," Orioles manager Dave Trembley said. "He had [a lot of] baserunners in the first four innings, but he stayed away from the big inning. He was probably up more than he wanted to be."
Jhonny Peralta hit a two-out RBI single for the Indians in the first inning, and Cleveland made it 2-0 with an unearned run in the third. Peralta reached on a throwing error by third baseman Aubrey Huff, took second on a single by Hafner and scored on a two-out single by Michael Aubrey.
"A couple of pitches, he probably wanted to have back," Trembley said. "Otherwise, he left the game and still gave us a chance. But Sowers just pitched better."
A sacrifice fly by Cabrera made it 5-1 in the seventh, and Shoppach hit an RBI double in the eighth after Hafner received an intentional walk.
Baltimore has been outscored 118-82 in the first inning. ... The Indians extended their season-high streak of homerless games to six. ... Hernandez, a catcher by trade, made his first career start at first base. ... Cleveland stranded 13 and went 6-for-19 with runners in scoring position.