Pennington completed 22-of-30 passes, seven of them to Ted Ginn for 175 yards.
Ricky Williams ran for a touchdown for the Dolphins (3-4) who had dropped their previous two games.
Dan Carpenter kicked three field goals for Miami.
Trent Edwards was 21-of-35 for 227 yards for Buffalo (5-2). Edwards also threw an interception.
Lee Evans caught seven passes for 116 yards and Marshawn Lynch carried 13 times for 61 yards and a score for the Bills.
Buffalo's Rian Lindell also kicked three field goals.