Franklin tossed zeros at the Montreal Expos and Bret Boone provided the offense with his 18th homer of the year as the Mariners escaped with a 1-0 win at Safeco Field.
Arthur Rhodes, acting as the Mariners' closer with Kazuhiro Sasaki on the disabled list, struck out Fernando Tatis with two outs and two runners aboard to end the game. It was Rhodes' first save of the season.
The victory for Seattle (43-21) snapped its four-game home losing streak and ended Montreal's six-game winning streak.
Franklin (5-4) needed just 102 pitches in his eight innings of work, but with Seattle holding only a one-run lead manager Bob Melvin elected to go with the live-armed Rhodes to close the door in the final inning.
Still, Franklin couldn't hang his head for failing to pitch his first complete game as a big-leaguer. He struck out five and walked only two while lowering his ERA to 3.18 for the year.
Boone's solo homer came in the fourth on a 1-2 count off of Expos' starter Claudio Vargas.
Vargas was just as impressive as Franklin in his six innings of work, giving up only four hits while striking out three and walking two.
Still, he became a hard-luck loser when Boone's long-ball over the left field wall stood to be the decisive run. Vargas fell to 3-3 on the year.
Jose Vidro led Montreal offensively with two of the team's five hits on the day. Vidro's batting average is up to .332, making him a top candidate at second base for the All Star game in Chicago next month.
Montreal (39-27) will head down to Oakland to play the first of three games versus the Athletics on Friday.