But when it mattered most, Vick came through, and the Eagles, who hurt themselves with turnovers and penalties, escaped.
Vick went 29 of 56 for 317 yards and two TDs, his first going to Jeremy Maclin.
Browns rookie Brandon Weeden threw four interceptions, the last to Kurt Coleman with 1:05 remaining, as the Browns fell to 1-13 in season openers since 1999.
LeSean McCoy rushed for 110 yards for Philadelphia, which trailed 16-10 in the fourth when Browns linebacker D'Qwell Jackson returned Vick's fourth pick 27 yards for touchdown.
With Vick forcing passes, the Eagles appeared doomed and poised to follow their ill-fated "Dream Team" season with an embarrassing loss.
On Philadelphia's winning drive, though, the Eagles converted a fourth-and-1 after Vick scrambled for 9 yards and fumbled on third down. He recovered, but Browns coach Pat Shurmur threw his red challenge flag and asked the replacement officials to review the play. However, after referee Ken Roan discussed the play with the replay booth, he announced the play was "not challengeable."
Vick got lucky on the play before his TD pass when Browns rookie linebacker L.J. Fort couldn't hold a potential interception in the end zone. Following his scoring toss to Harbor, Vick pumped his fist as much in relief as celebration.
The Browns had one final chance, but Weeden overthrew his target and was picked off by Coleman.
The Eagles, recently informed by owner Jeffrey Lurie that another 8-8 wouldn't be acceptable, had 456 total yards, but 12 penalties kept their wheels spinning.
Weeden's day started on a comical note as he got trapped under a giant American flag being unfurled on the field for the national anthem.
The rest of his pro debut wasn't so funny.
He finished 12 of 35 for 118 yards, had the four picks and forced several throws.
Cleveland rookie running back Trent Richardson had 19 carries for 39 yards. The No. 3 overall pick in this year's draft only returned to practice this week after undergoing knee surgery on Aug. 9.
Phil Dawson kicked field goals of 43, 42 and 22 yards for Cleveland.
After looking shaky for much of the first half, Vick finally got it together and led the Eagles to the season's first TD in the final minute. He lofted a perfect pass down the left sideline to Maclin for a 46-yard gain. On the next play, Maclin beat Joe Haden on an inside move and Vick fired him an 18-yard bullet to give Philadelphia a 10-3 lead with 17 seconds left.
For much of the opening half, Cleveland's defense was able to pressure Vick, who still managed to throw for 209 yards.
Cleveland was missing two starters from its secondary as cornerback Sheldon Brown went out in the first quarter with a shoulder injury and safety T.J. Ward left with cramps. Linebacker Scott Fujita, whose suspension for his role in the New Orleans bounty program temporarily was lifted Friday by an appeals panel, did not dress.
Richardson announced his arrival in the second quarter with a punishing inside run that would make Hall of Famer Earl Campbell proud. Richardson went 9 yards before lowering his head and blasting Coleman, whose helmet went flying several yards. After the Browns punted, Coleman spent several minutes being tended to on the bench by trainers, who worked on his face.
Philadelphia 17, Cleveland 16
Philadelphia 0 10 0 7 17
Cleveland 3 0 3 10 16
Cle • FG Dawson 43, 9:12.
Phi • FG Henery 42, 14:58.
Phi • Maclin 18 pass from Vick (Henery kick), :17.
Cle • FG Dawson 42, 4:57.
Cle • FG Dawson 22, 14:15.
Cle • D.Jackson 27 interception return (Dawson kick), 13:59.
Phi • Harbor 4 pass from Vick (Henery kick), 1:18.
Attendance • 68,693.
First downs 25 12
Total Net Yards 456 210
Rushes-yards 30-150 22-99
Passing 306 111
Punt Returns 1-6 6-78
Kickoff Returns 3-64 4-98
Interceptions Ret. 4-13 4-88
Comp-Att-Int 29-56-4 12-35-4
Sacked-Yards Lost 2-11 2-7
Punts 6-55.0 7-44.0
Fumbles-Lost 3-1 2-0
Penalties-yards 12-110 3-35
Time of Possession 35:58 24:02
Rushing • Philadelphia, McCoy 20-110, Vick 7-32, Jackson 1-5, Brown 2-3. Cleveland, Richardson 19-39, Benjamin 1-35, Weeden 2-25.
Passing • Philadelphia, Vick 29-56-4-317. Cleveland, Weeden 12-35-4-118.
Receiving • Philadelphia, Maclin 7-96, McCoy 6-26, Jackson 4-77, Celek 4-65, Avant 4-27, Harbor 3-16, D.Johnson 1-10. Cleveland, Massaquoi 3-41, Gordon 2-32, B.Jackson 2-20, Watson 2-9, Benjamin 1-12, Richardson 1-5, Smith 1-(minus 1).
Missed Field Goals • Philadelphia, Henery 45 (WL).