Thomas scored on runs of 34 and 19 yards and Carney kicked his second field goal of the game, from 35 yards, while the Saints defense kept the Bills scoreless in the second half.
Lynell Hamilton had scored for New Orleans (3-0) on a 1-yard run in the first quarter.
Saints quarterback Drew Brees connected on 16-of-29 passes for 172 yards.
Buffalo faked a field goal and scored on a 25-yard pass from Brian Moorman to Ryan Denney in the second quarter.
Trent Edwards passed for 156 yards for the Bills (1-2), with 20 completions in 35 attempts.