Tampa Bay QB Josh Freeman struggled in Sunday's loss to the Eagles. (US Presswire)

Losing on the last play of the game was bad enough for Tampa Bay. Watching essentially every major rival for the NFC's wild-card spots pick up wins meant Sunday's 23-21 loss to the Eagles all but ended the Bucs' postseason hopes.

Offense: D

It's borderline miraculous that the Bucs were in this game in the final minutes. They were absolutely awful on offense in the first half, with seven punts on seven possessions. Only one of those drives lasted more than five plays, and none covered more than 26 yards.

Yes, the Bucs got three touchdowns in the second half. But when they could have put the game away with a few late first downs, they instead responded with an 11-yard "drive" and had to give the ball back quickly. QB Josh Freeman was again simply not accurate enough, completing only 41.1 percent of his passes. Even strong performances from RB Doug Martin (28 carries, 128 yards, 1 TD) and WR Vincent Jackson (6 catches, 131 yards, 1 TD) weren't good enough to secure victory. Last game's grade: C-

Defense: C-

The Bucs are so close to being one of the better teams in the NFC, but their secondary is just too abysmal to let it happen. Tampa Bay made Philadelphia rookie Nick Foles look like a bona fide NFL star, giving up 381 yards and two touchdowns to the Eagles' quarterback. That was without Philadelphia's top WR, DeSean Jackson, whose season ended early due to injury. No matter -- Jason Avant and Jeremy Maclin each torched the secondary anyway.

Yes, the Bucs were again strong defending the run, holding RBs Bryce Brown and Dion Lewis to only two yards on 13 carries. But when the secondary is that bad, who needs to run the ball? The defense couldn't make the late stop to win the game, either. Last game's grade: B

Special Teams: B+

There's no reason to blame the specialists for this loss. K Connor Barth never got the chance to try a field goal, and one wouldn't blame P Michael Koenen if he had a sore leg after punting 10 times. PR Roscoe Parrish again showed how valuable he can be, with an average of 15.8 yards per return -- including an impressive 30-yard effort. Last game's grade: A

Coaching: B-

Somehow, the defense held firm for most of the first half while the offense struggled. Give coach Greg Schiano and his staff credit for that. But when the game was on the line late, they became too conservative.

All four plays of Tampa Bay's last possession were Martin runs, allowing the Eagles to burn all of their timeouts and get the ball back with enough time to move down the field. Simply put, the Buccaneers' defense has not been good enough to trust in late-game situations. Freeman hasn't been great, but the team's best chance at sewing up a win came on offense. Why not give Freeman a chance to put the game away on third-and-8? Last game's grade: B-

For more from Tampa Bay Bucs blogger Patrick Southern, follow @CBSBucs on Twitter.