CLEVELAND -- Mike Maroth can't explain why he is so successful against the Cleveland Indians.
"I do well here," said Maroth, who is 6-0 with a 2.30 ERA in seven career starts in Cleveland. "Why, I don't know. I just do. I don't know what else to say."
Aaron Boone, who had one of the seven hits allowed by the left-hander, offered a theory.
"He's a good pitcher. It's more than what you see on radar guns. Good pitching is hitting spots and changing speeds. He sure does that well," Boone said.
Detroit won its fourth straight to improve the best road record in baseball to 16-7. The Indians lost their sixth straight for the first time since a six-game skid Aug. 9-14, 2004.
"We're in one of those funks," Indians manager Eric Wedge said.
The Tigers last swept a series in Cleveland on June 5-7, 1990.
"You're not supposed to win on the road," Maroth said. "You're supposed to lose a series or maybe get swept. The skipper (Jim Leyland) keeps us focused. He has us ready to play every day."
Maroth hasn't allowed an earned run to the Indians in 13 innings this season and is 8-3 in his career against them. He walked one and struck out two, leaving after the Tigers scored three runs in the top of the seventh and a 59-minute rain delay to start the bottom half.
The Indians put runners on second and third with no outs in the eighth, but Joel Zumaya came on and struck out Victor Martinez before yielding a pinch-hit sacrifice fly to Ben Broussard that made it 3-2.
"I thought it might go out, but it was raining again and the wind was coming in pretty hard," Broussard said. "Guys in the dugout said the ball took off and then just died."
Casey Blake was intentionally walked before Ronnie Belliard lined out to end the rally.
Fernando Rodney pitched the ninth for his sixth save, walking two before getting Travis Hafner on fly to the warning track in left-center for the final out. Hafner leaped up in disgust before splashing his way through the mud near first base.
"That one looked like it might be off the wall," Broussard said. "That's just the way things are right now."
Jason Johnson (2-3), in his first outing against the Tigers since leaving them as a free agent in December, held a 1-0 lead after six.
Carlos Guillen poked a single just past diving second baseman Belliard to open the seventh. He went to third on Chris Shelton's line single to right and Craig Monroe followed with an RBI double to tie it 1-1.
Reliever Fernando Cabrera got Vance Wilson to top a bouncer that first baseman Eduardo Perez misplayed for an error, allowing both runners to score.
"He hit it off the end of the bat and it had spin on it," Perez said. "Sometimes those are as tough to catch as a knuckleball. I said, 'Oh boy, hope for the best.'
"With nobody on, you can just knock it down, but with a runner on third, I had to try and catch it and make a play. I didn't."
Cleveland used three singles and a misplay by Tigers right fielder Magglio Ordonez to take a 1-0 lead in the fifth.
Blake singled with one out and went to second on a two-out single by Boone. Grady Sizemore then singled to right, but Blake was held up by third-base coach Jeff Datz - until Ordonez had the ball pop out of his glove for an error, enabling the runner to score.
Johnson allowed two earned runs and eight hits over six-plus innings. He fell to 0-3 with an 8.28 ERA in five starts since opening 2-0 with a 1.83 ERA through April 18.
- During the game, the Indians announced they had sold RHP Steve Karsay to Oakland. The 34-year-old right-hander had been pitching at Triple-A Buffalo.
- Seven Tigers and four Indians used pink bats to honor Breast Cancer Awareness Day. Indians OF Jason Michaels switched to his regular model after grounding out in the first.
- Blake extended his hitting streak to 12 games, tying a career high.
- Johnson had a 16-28 record and 4.82 ERA in 66 starts over two seasons in Detroit.