MIAMI -- Joey Porter yanked off his helmet and gave it a jubilant fling, done with it for the day. With that, the Miami Dolphins' latest victory celebration was under way.
Porter's game-clinching sack punctuated another strong defensive effort, and the surprising Dolphins helped their playoff chances Sunday by beating San Francisco 14-9.
The Dolphins had possession for less than 22 minutes but held the opposition without a touchdown for the third game in a row, their first such stretch since 1973. San Francisco reached Miami's 21 before its final threat ended when Shaun Hill was sacked by Porter on fourth-and-10 with 1:02 left.
"We kept bending but never breaking," Porter said. "We made the plays when we had to."
The Dolphins (9-5), who began the day tied with the Patriots and Jets for the AFC East lead, won for the seventh time in eight games. It's quite a turnaround for a team that went 1-15 last season.
"We hung in there, as we have all season, and look at us now," defensive end Vonnie Holliday said. "It's a great time to be a Dolphin, no doubt about it."
The Dolphins can earn their first playoff berth since 2001 by sweeping their final two games. They've surged into contention with four victories by less than a touchdown since Nov. 1.
"We're finding ways to get wins," nose tackle Jason Ferguson said. "They're not cute, but all wins are beautiful."
The 49ers (5-9), trying to play spoilers, fell short in their bid to beat an AFC East team for the third week in a row.
"Obviously they wanted it more than we did," said Mike Singletary, 3-4 as San Francisco's coach. "We have to learn how to win."
The 49ers ran 79 plays to 42 for the Dolphins, but Miami tight ends scored the only touchdowns on first-half passes from Chad Pennington. He threw a 61-yarder to David Martin and a 19-yarder to rookie Joey Haynos.
Miami had the ball for less than 10 minutes in the first half but led 14-3 at halftime, and needed only three plays on offense to take the lead for good. Pennington threw deep to Martin, who outmaneuvered Mark Roman to make the catch and sprinted for the end zone. It was the longest reception of Martin's career.
A 27-yard punt return by Davone Bess set up the Dolphins' second score on the completion to the third-stringer Haynos, who made the first catch of his career.
"He was wide open," Martin said. "I was just praying he caught it."
From there the Dolphins nursed their lead. Miami's Dan Carpenter hit the crossbar on a 49-yard field goal attempt with 2:36 left, giving the 49ers the ball at their 39. They reached Miami's 21 before Hill spiked the ball to stop the clock, and he threw two more incompletions before Porter got to him.
"Joey always comes through for us in the clutch situations," teammate Charlie Anderson said.
Porter was in typical form beginning with pregame warmups, when he ventured to the 49ers' side to taunt tight end Vernon Davis. Porter increased his season sack total to 17.5, and cornerback Nate Jones had his first two sacks of the season.
"We've got a little swagger to ourselves," Jones said. "We know if we don't let the other team in the end zone, we're probably going to win."
The Dolphins made only 11 first downs and converted just one third-down attempt, but they had no turnovers and remain on pace to set an NFL record for fewest turnovers in a season.
Poor field position plagued the 49ers, who started their possessions at their 20, 20, 11, 4, 11, 13, 21, 34 and 39. Mistakes hurt them, too. They muffed a kickoff, made a fair catch of a punt inside the 5, dropped a potential interception and committed two false-start penalties on one play.
"Particularly in the first half, we didn't get out of our own way," Singletary said.
The 49ers also drove inside the Miami 25 four times without scoring a TD.
"We didn't execute well enough in the red zone," Hill said. "Anytime you're kicking field goals instead of touchdowns, that really hinders you."
Notes: 49ers T Adam Snyder left the game in the first quarter due to a sprained left ankle. ... Porter went to the X-ray room after the game. A Dolphins official said the team had no information about any injury. ... Umpire Scott Dawson left the game in the second quarter. His nose was bloodied when he was blindsided by two Miami defenders. ... Pennington connected on his first six passes, extending his two-game streak to 17 completions in a row to break Dan Marino's team record of 15 set in 1992.
Copyright 2008 by The Associated Press.