Henry scored twice, including a 2-yard plunge 4:53 into overtime, in his first game in two weeks since tearing rib cartilage.
Moulds helped set up the score with might have been a costly 28-yard reception. Tackled by safety Kevin Kaesviharn at the Bengals 7, Moulds strained his groin as he tumbled awkwardly into the sideline and had to be helped off the field as Henry scored two plays later.
Together, Henry and Moulds provided the spark for the Bills (3-2) to overcome a bumbling start, snap a two-game losing streak and beat the Bengals for the sixth consecutive time.
"I just wanted to come out and help this football team," Henry said. "I was going to do anything in my power to get on the football field and give this team a boost."
He did, finishing with 25 carries for 85 yards. He added two receptions for 14 yards, including a 9-yarder off a screen for a touchdown.
Moulds played down the severity of his injury and was hopeful he'd be ready when the Bills travel to play the New York Jets next weekend.
Moulds was particularly impressed by Henry's performance; the running back revived a Bills ground attack that had combined for just 62 yards in its past two games.
"He's a warrior," Moulds said. "If we could get everyone on this team to play like this guy when he's hurt, we can do great things."
The Bengals (1-4) looked nothing like the so-called "Bungles" of the past for all but the final 10 minutes, when they allowed the Bills to overcome a 16-13 deficit.
"They all hurt," quarterback Jon Kitna said. "Nobody is looking to be competitive. That's just not the team we are. We're not just happy to be in games. We expect to win every football game."
Kitna finished 26-of-44 for 225 yards passing and an interception.
Bills quarterback Drew Bledsoe sparked the comeback, erasing the memories of a terrible first half in which Buffalo endured six three-and-outs and he watched four receivers drop easy passes.
Bledsoe marched the Bills 59 yards on 13 plays to set up Rian Lindell's 29-yard field goal with 28 seconds remaining in regulation. He kept the drive alive, converting a fourth-and-3 with a 19-yard completion to Moulds.
And Bledsoe wasted no time securing the victory, taking the Bills 57 yards after the Bengals opened overtime going three-and-out. Besides the completion to Moulds, Bledsoe hit tight end Mark Campbell over the middle for a 20-yard reception, putting the Bills at the Bengals 35.
It was the 22nd fourth-quarter comeback of Bledsoe's career, and third in two seasons with Buffalo. He finished 19-of-35 for 211 yards passing.
Bledsoe took little credit, instead calling Moulds "a stud," and describing Henry's performance as "studly."
"It was almost a desperation situation for us," Bledsoe said. "We had to win to stay in the middle of the race in our division."
The Bengals enter their bye week having to regroup.
"We're going to get it right," coach Marvin Lewis said. "There's not a person in that locker room who is satisfied. That's not what we came here for."
It was little solace that the Bengals played with poise and didn't appear to be affected by adversity. They started the game without star running back Corey Dillon (groin strain) and then watched cornerback Jeff Burris being driven off the field in an ambulance in the third quarter.
Burris sustained a neck injury and, after being iced down, watched the end of the game from the sideline.
Bills linebacker Takeo Spikes said the victory was more important than a personal issue he had in facing his former team for the first time since joining Buffalo last March.
"The biggest thing was to get back on track," Spikes said.
Drew Bledsoe celebrates after watching Travis Henry reach the end zone in OT. (AP)
|FG||Rian Lindell 27 Yd, 0:50. Drive: 10 plays, 53 yards in 4:44.|
|FG||Shayne Graham 39 Yd, 6:20. Drive: 12 plays, 45 yards in 5:02.|
|FG||Shayne Graham 37 Yd, 1:00. Drive: 8 plays, 37 yards in 1:55.|
|FG||Rian Lindell 38 Yd, 11:26. Drive: 8 plays, 46 yards in 3:34.|
|TD||Travis Henry, 9 Yd pass from Drew Bledsoe (Rian Lindell kick is good), 0:42. Drive: 5 plays, 35 yards in 2:19.|
|TD||Rudi Johnson, 16 Yd run (Shayne Graham kick is good), 9:14. Drive: 13 plays, 74 yards in 6:28.|
|FG||Shayne Graham 30 Yd, 5:33. Drive: 4 plays, 8 yards in 2:01.|
|FG||Rian Lindell 29 Yd, 0:28. Drive: 13 plays, 59 yards in 5:05.|
|TD||Travis Henry, 2 Yd run, 11:07. Drive: 5 plays, 57 yards in 2:23.|
|Complete Player Stats|