Carter sent the 0-1 pitch from Steve Delabar deep into the stands in left field to bring the A's back to .500 for the first time since May 22. The hit was Carter's first walk-off shot, third long ball of the season and sixth of his young career.
Josh Reddick flicked a single to left off Oliver Perez (0-1) to start the final rally. After Yoenis Cespedes flied out to right, Seth Smith hit a checked-swing infield single near third base to chase Perez and set the stage for Carter's homer.
Jordan Norberto (1-1) struck out Seattle's side in the 11th for his first career win.
Both teams wasted solid starts by Seattle's Kevin Millwood and A's lefty Tommy Milone, who each tossed seven innings and combined to strike out 16 batters. But each had nothing to show for all the work.
The A's rallied in the eighth before both teams missed a chance in the ninth to end the game.
Pinch-hitter Brandon Hicks doubled off the top of the right-center field wall against Charlie Furbush with one out in the eighth. After Coco Crisp popped out to right, Jemile Weeks hit a tying RBI single up the middle off Tom Wilhelmsen.
Cespedes drew a leadoff walk against Wilhelmsen in the ninth and stole second with two outs. After Derek Norris was walked intentionally, Brandon Inge grounded out to short.
Seattle's Carlos Peguero poked a two-out triple to left in the ninth that landed in front of a diving Cespedes, who took a bad angle to the ball and watched it trickle to the warning track. But All-Star closer Ryan Cook got Dustin Ackley to ground out to short for the third out, and both sides struggled to score the game-winning run.
The only run the Mariners managed came before most fans in the spacious Oakland Coliseum even sat down.
Kyle Seager singled to center in the first to score Casper Wells from second and give the Mariners a 1-0 lead. Justin Smoak struck out looking to strand two runners.
Seattle's defense backed Millwood more than once.
After Smith singled leading off the second, Wells made a running catch against the wall in left to rob Brandon Moss of extra bases and likely save a run. Millwood also struck out Derek Norris swinging and catcher Miguel Olivo threw out Smith at second for a double play.
Millwood moved through the A's lineup with relative ease the rest of the way.
He allowed two walks in the fourth before striking out Moss for the inning's final out, and overcame a one-out infield single by Weeks in the sixth - the first Oakland hit since the second inning - by getting Reddick to fly out to center and Cespedes to ground out back to the mound.
Millwood left after striking out seven in seven innings, allowing three hits and two walks. He showed no signs of the right groin discomfort that sidelined him after 2 2/3 innings in his last start.
Milone had a career-high nine strikeouts while giving up six hits and one walk in seven innings. Milone's previous best for strikeouts in a game was six, which he had done three times - including his last start at Texas on June 30.
NOTES: Oakland LHP Brett Anderson threw 25 pitches against hitters before the game in another step forward from elbow-ligament replacement surgery last July. He will throw a bullpen session Sunday and then toss two innings in a simulated game in Arizona next week, manager Bob Melvin said. ... Seattle C Jesus Montero sat out while recovering from a mild concussion after taking a foul ball from Baltimore's Robert Andino off the facemask Wednesday. Wedge said Montero is "day to day" and won't go on the seven-day concussion DL because the All-Star break is coming anyway. ... Mariners reliever Stephen Pryor (left groin strain) threw a simulated game and will begin a rehab stint in Class-A High Desert on Sunday before going to Triple-A Tacoma.