CLEVELAND -- Jason Bay dressed quietly and kept a level head when others may have celebrated.
"I'm just trying to stay relaxed," said Bay, who went 3-for-5 and is hitting .347 (17-for-49) over his last 12 games. "I know I'm a big part of our offense, but sometimes I try to do too much.
"Lately, I've been seeing pitches pretty good. Getting that early lead tonight was important."
The Pirates hit four home runs and won for only the second time in their last 14 interleague games. They improved to 4-18 on the road this season. Cleveland had a four-game winning streak snapped and lost for only the second time in its last 14 games against a National League team.
Bay hit a three-run homer in the third off Jason Johnson (2-4) to give Pittsburgh a 5-2 lead. He hit a solo drive in the ninth against Guillermo Mota, his ninth of the season. It was his first multihomer game of the year and seventh of his career.
"Jason had a terrific night," Pirates manager Jim Tracy said. "The whole team did a lot of good things offensively."
Nate McLouth led off the game with his third homer and Jose Castillo added a two-run drive in the fourth off Johnson, who had allowed only two homers in 44 2/3 innings before Saturday.
"I had no idea what a guy could hit and what a guy couldn't hit," said Johnson, who was facing the Pirates for the first time. "It doesn't bother me, but I don't like it, pitching to a team I don't know about."
The right-hander, signed as a free agent in December, opened the season 2-0 with a 1.83 ERA in three starts through April 18, but is 0-4 with a 9.73 ERA in six outings since.
"I think there is some reason for concern," Indians manager Eric Wedge said. "We saw what he was capable of in his first three or four starts.
"Right now, Jason is in our starting rotation. It's early in the season. We believe in sticking with guys, but he needs to make some adjustments and give himself and our team a chance to win."
McLouth drew a walk after Castillo's homer, then stole second and third and scored on a sacrifice fly by Jack Wilson to put Pittsburgh ahead 8-2.
"You can never have enough runs against a team with an offense like Cleveland," McLouth said.
"He (Johnson) didn't give me a look, so I took off. Stealing bases can spark your team."
Ian Snell (3-3) gave up two earned runs over five innings, bouncing back from his worst start of the season when he gave up seven runs in just 1 1/3 innings against Florida on Sunday. The right-hander allowed four hits, walked five and struck out four in his first career road win.
Mike Gonzalez struck out the side in the ninth for his sixth save.
"That was his best outing of the year," Tracy said of Gonzalez. "He had great command of his fastball. When he has that, he's tough."
With the Indians trailing 2-0 in the second, Ben Broussard doubled and scored on Ronnie Belliard's single to center. After Todd Hollandsworth walked, Lou Merloni bunted both runners over and Belliard scored on a groundout by Grady Sizemore to tie it.
Merloni drove in a run with a groundout in the fourth to get Cleveland within 8-3. Sizemore followed with a two-run homer, his eighth of the season and third in three games.
Casey Blake doubled and scored on a single by Victor Martinez in the seventh as Cleveland moved within 8-6.
Johnson gave up eight runs and 10 hits with two walks over 3 2/3 innings.
"It was a bad day," he said. "I'm not going to dwell on it. I've gone through some periods like this in my career when I've had four or five bad starts. It's not like it hasn't happened before. I've just got to put it behind me and get ready for my next start."
Indians RHP Fausto Carmona gave up three hits over 3 2/3 scoreless innings in his first career relief appearance. ... McLouth's homer was the first of his career to open a game. ... Merloni started at third for Cleveland as Aaron Boone sat out with a stiff back. ... Johnson has allowed 56 hits in his last 28 2/3 innings. ... Fans received a dual figurine of Hall of Famers Larry Doby and Satchel Paige, both of whom were signed by Cleveland after playing in the Negro Leagues.