Follow CBSMIAMI.COM: Facebook | Twitter

CHARLOTTE (CBSMiami) – The Miami Dolphins will be happy to return home after a long week in the Carolinas.

READ MORE: NBA fines Miami Heat $25,000 for violating 'bench decorum'

The Dolphins led most of the way but ultimately fell to the Carolina Panthers 31-30 at Bank of America Stadium in Charlotte, North Carolina on Saturday night.

For the second straight game the Dolphins starters looked good on both sides of the ball, though there were some plays that left you scratching your head.

Miami’s offensive line didn’t have the same kind of success against the Panthers as they did against the Bears but that’s not surprising as Carolina has a much better defensive front.

On the first play of the game Billy Turner completely whiffed on his block.  Then later in the opening drive Dion Sims was beaten badly and Ryan Tannehill was strip-sacked, but luckily Miami recovered the fumble.

Turner had a couple missed blocks but was fine otherwise. Dallas Thomas held his own for the second straight week and seems to be cementing his spot at right guard.

One change with the reserves was that Jacques McClendon was used as the backup center and Sam Brenner played backup guard.  Brenner had been handling the backup center duties during training camp.

Tannehill missed on a couple of throws but overall had another strong performance.

He badly overthrew Kenny Stills on a deep ball down the right sideline, but then threw a perfect deep pass to Jordan Cameron that the tight end couldn’t pull in despite the ball being placed perfectly.

Tannehill showed his full arsenal, making some nice timing throws and even running for 11 yards on a 2nd and 10.

By the time he was finished, Miami was leading 14-0 and Tannehill completed 12-of-15 passes for 102 yards and a touchdown. His passer rating was 117.2 and he has now completed 81% of his passes through two preseason games.

Tannehill’s backup, Matt Moore, also had some good moments but a bad interception is what stands out about his night.  After a rough first half he orchestrated a scoring drive capped off by a four-yard touchdown pass to Matt Hazel.

Josh Freeman came into the game during the 4th quarter and promptly threw an interception that set up the Panthers for the go-ahead touchdown.

On Miami’s next drive Freeman hit Gerell Robinson for a 56-yard touchdown that was more run than catch but when the Dolphins went for two, Freeman made a poor throw that didn’t reach the goal line.

As for the running backs, both Damien Williams and LaMike James had solid evenings.

Williams scored a pair of touchdowns, one rushing and one receiving, during the first half. He’s the first Dolphins player to score both ways in a preseason game since Bernie Parmalee in 1995.

READ MORE: Man faces several charges including pointing laser at BSO aviation unit

Unfortunately Williams’ night wasn’t as good as it could have been  His goal-line fumble cost Miami possession of the ball and ended up changing the momentum of the game.

Worse than the actual fumble was Joe Philbin’s challenging of the play which ended up costing Miami the ball.

James had a 22-yard run when the Dolphins were back up to their own 1-yard line and another where he made a nice juke move to break into the second level and pick up 12 yards.

Starter Lamar Miller didn’t do much on the ground but he had a great 36-yard catch and run.

As for Miami’s defense, there were a lot of similarities to their first preseason game.

The defensive front was dominant again, led by Ndamukong Suh and the d-line.  Carolina gained just eight yards on it’s first seven plays.

Safety Reshad Jones was all over the field making plays left and right. He has looked amazing since training camp began and seems poised to make the Pro Bowl in 2015.

The other safety spot, now vacant after the season-ending injury to Louis Delmas, is still a question mark.

Both Walt Aikens and Michael Thomas got their chance to fill the spot and both had good moments and bad ones.

They each struggled making tackles and in coverage at times but then during the Panthers final drive of the first half both youngsters made a nice play to stall the drive.

Jamar Taylor had a very nice interception and 22-yard return during the first half, but he later injured his left quad. No word of the severity has been released.

Rookie Tony Lippett also made a very nice pass break up on that drive. He has shown some real raw ability but needs to refine his technique.

A.J. Francis and Emmanual Dieke both came away with a sack during the second half, but Dieke and Jordan Phillips badly missed tackles on a Panthers touchdown run in the third quarter.  Francis also had a tackle for loss.

With training camp now over, the Dolphins return to the team’s practice facility in Davie with roster cuts looming in less than two weeks.

Miami must trim its roster from 90 players to 75 by 4 p.m. on September 1st, then from 75 to 53 by 4 p.m. on September 5th.

Be sure to check out our #FinsOn4 Live Dolphins Blog where we will be posting season-long coverage, updates, photos, video, commentary and more during every Dolphins game of the 2015 season.

MORE NEWS: Miami ex-Proud Boys leader Henry 'Enrique' Tarrio to stay jailed until Capitol riot trial

Follow David on Twitter (@DavidDwork