SEATTLE -- Justin Duchscherer missed last season because of an elbow injury and later was treated for clinical depression. When he made it back to the mound, he was confident he would do well.
"I just didn't expect it to come this early," the right-hander said with a grin.
Cliff Pennington homered and Gabe Gross had a two-run single for Oakland, off to a surprising 6-2 start.
The 32-year-old Duchscherer won for the first time since July 8, 2008, a two-hitter also against Seattle.
"More than anything, I'm just proud of myself," he said. "It's been a long time since I got a win in a major league baseball game."
Former Mariners star Randy Johnson sent a charge through Safeco Field with a ceremonial first pitch but that was one of the few bright spots for the sellout crowd of 45,876.
Seattle has scored just 21 runs while stumbling to a 2-6 start, an especially difficult beginning since it entered the year with playoff aspirations following a splashy offseason.
They already look discouraged, and manager Don Wakamatsu scheduled a team meeting for Tuesday before batting practice.
"You look out there during the course of the ballgame and you see a lot of guys right now with their heads down a little bit," Wakamatsu said. "It's something we're going to talk about."
This is the Mariners' worst start since beginning 1-7 in 2004.
"We are just pressing offensively," Ken Griffey Jr. said in a quiet clubhouse. "We'll get on track, and the first six, seven games will be forgotten. I'd rather it happen this week than late September."
Ryan Rowland-Smith (0-1) allowed just three hits in seven innings for Seattle, but issued a career-high five walks and allowed four runs.
Duchscherer, an All-Star in 2005 and '08, became a free agent after sitting out last season but opted to return to the A's. He didn't make his spring debut until March 22. Then he allowed five runs and seven hits over 5 2/3 innings in a no-decision last week against Seattle, a game that Oakland won late but left him grouchy and unfulfilled.
He was smiling after his second start since Aug. 18, 2008. He struck out Griffey twice, the second time with the tying run on third in the fourth inning.
Only one other Seattle runner got past first base on Duchscherer after that.
"You know, he's battled through a lot of different things in the last year," A's manager Bob Geren said. "I'm very proud of him."
Rowland-Smith didn't allow a hit until the sixth -- and it hurt. Pennington, the No. 9 hitter, lined an 0-2 pitch over the roof of Oakland's bullpen bench for his second homer of the season.
Pennington's drive made it 2-0, a considerable deficit considering the way Seattle has hit so far this season. The Mariners had just three baserunners and one hit in the first six innings.
Oakland added two more in the seventh. With two out and runners on second and third, catcher Rob Johnson could not hold on to a two-strike foul tip by Gross. Given the reprieve, Gross celebrated his first start with the A's by driving in two with a single.
Randy Johnson got a warm welcome from the sellout crowd of 45,876 before he fired a strike to his former Mariners catcher, Dan Wilson, minutes before the game.
The 46-year-old Big Unit, a five-time Cy Young Award winner who rose to prominence with Seattle in the 1990s, looked tanned and relaxed in a black, open-collared shirt and jeans. He tossed the ball about 20 rows back into the lower seats behind the Mariners dugout as he walked off the field with Griffey, Wilson, and fellow former teammates Edgar Martinez and Jay Buhner.
The crowd roared -- for one of the last times of the day.
Mariners RF Ichiro Suzuki received his ninth consecutive Gold Glove trophy and his third career Silver Slugger bat before the game. ... A's manager Bob Geren said 2B Mark Ellis might miss two days with a strained hamstring. He was injured Sunday against the Los Angeles Angels. ... The Mariners announced OF Ryan Langerhans had cleared waivers and was optioned to Triple-A Tacoma.