The San Francisco 49ers were not expected to be a playoff team this season. However, not only did they make the playoffs, but they are getting set to battle the Kansas City Chiefs in the Super Bowl on Feb. 2.

This comes on the heels of a 4-12 campaign in 2018, so, clearly, there were massive improvements up and down the roster.

The 49ers have gotten to this point on the strength of their defense, but even their offense has shown that it can put up points in a variety of different ways.

So, here are the three San Francisco players who have improved the most this year:

3. QB Jimmy Garoppolo

Jimmy Garoppolo is third because he doesn't have much of a sample size to use as a reference point.

Yes, the 49ers originally acquired him back in October 2017, but he only made five starts that season. Last year, he started just three games before going down with a torn ACL.

But you have to admire how Garoppolo bounced back from such a serious injury.

The 28-year threw for 3,978 yards, 27 touchdowns and 13 interceptions while completing 69.1 percent of his passes and posted a passer rating of 102 this season. While he wasn't incredibly consistent, he has done enough for the 49ers to feel comfortable with him under center moving forward.

We still need to see how Garoppolo plays in the Super Bowl, but there is no doubt he has had a nice season.

2. RB Raheem Mostert

Raheem Mostert put the world on notice in the NFC Championship game, racking up 220 yards and four touchdowns in a 37-20 win over the Green Bay Packers last weekend.

But those who were paying attention also know he was an important piece of the 49ers offense during the regular season, as well, as he rushed for 772 yards and eight scores while averaging 5.6 yards per carry.

What makes Mostert's story so great is that he was cut by six teams before finally joining the Niners in 2016, and he didn't begin to get regular playing time until this season.

Yes, he has been sharing the backfield with Tevin Coleman and Matt Breida, but Mostert has probably been the 49ers' best halfback this year.

It remains to be seen if the 27-year-old can replicate his success in 2020, but he absolutely deserves recognition for his breakout 2019.

1. DL Arik Armstead

Maybe it's the fact that it's a contract year or maybe Arik Armstead has made some tweaks to his game.

Whatever the case may be, Armstead has developed into one of the NFL's most dominant interior defensive linemen this season, rattling off 54 tackles, 10 sacks and a couple of forced fumbles.

He has also been a monster in the playoffs, logging a sack in each of the 49ers' first two postseason contests and applying ample pressure on the quarterback in general.

There are a lot of reasons why San Francisco's defense is so good this year, whether it has been the arrival of rookie defensive lineman Nick Bosa or the revitalization of veteran cornerback Richard Sherman, but Armstead is unquestionably one of the biggest reasons why the 49ers have been so dominant on that side of the ball.