"He's been doing that all year long," said Swisher, who supported Haren with two home runs and four RBIs.
Seattle had been the only team to beat Haren twice this season, but he made the pitches when he needed them. The key for him was keeping the ball down, as the Mariners -- who have lost seven in a row -- had only two outfield fly balls out against him.
"My real goal is to give us a good chance to win every time out," Haren said. "I've done that for the most part this year. And the times I haven't, it seems like the offense has picked me up."
The offense, which was hitting a Major-League low .227 this month, was spearheaded by Swisher, who was involved in five of the six runs. He scored in the first run on Mike Piazza's first-inning single to left. He hit a solo home run in the fifth, then knocked a three-run job off the left-field foul pole in the ninth.
It was Swisher's eighth career multi-homer game and fourth time he hit one from both sides of the plate.
Mark Ellis also had a home run, his 12th, a solo shot in the second inning.
"I just got lucky a couple times," said Swisher, who has been working with hitting coach Ty Van Burkleo on keeping a quieter stance. He had been hitless in his previous seven at-bats and was 2-for-11 on the road trip.
The Mariners came back with a Richie Sexson solo shot in the second and Adrian Beltre's RBI single in the fifth to make it 3-2.
Haren said Beltre was the crucial hitter in every at-bat. He hit a double off him in the first, giving him a .467 (14-for-30) career average against Haren at the time.
"I do different things with him," Haren said, "and nothing works."
Beltre faced him again in the second with two outs and runners on first and second. He struck him out on a split-finger fastball.
"It was a split that kind of went into him," Haren said. "He hit a home run off the split the last time I faced him. He hit a split for his RBI up the middle. But the only way for me to get him out was a mistake split."
He faced Beltre one last time in the seventh with two outs and no one on. He didn't give him a chance to beat him, walking Beltre then striking out Raul Ibanez.
Haren is now 5-2 with a 2.38 ERA in his 10 road starts. He also is a handful at night, posting a 6-2 record with a league-low 2.55 ERA in 14 evening starts.
"He has been impressive all season for us," manager Bob Geren said. "A huge part of where we're at right now is Dan Haren. He's obviously on the map now with the best in the league.
"We're still below .500 as team (49-53) and to have that kind of won-loss record is actually more impressive than some of the other guys."
Santiago Casilla kept it there with a hitless eighth and closer Huston Street finished the game with a routine ninth.
There were two outstanding defensive plays, one by each team. Second baseman Marco Scutaro made a desperate third-inning, barehand slab at a deflected ground ball then tossed to Haren covering first to get Jose Guillen. In the fourth, Ichiro Suzuki ran down a Scutaro fly ball to deep center, hauling it in with a stretch.
"It's like the playoffs for us," said Haren. "These games are so important. We put ourselves in such a big hole. These games mean a lot. Every game we have to come out with the intensity to win."