The Vikings and defensive tackle Tom Johnson, who had a career year in 2014, have agreed to terms on a three-year contract worth $7 million, including $3 million guaranteed, according to a league source.

While Johnson is not a starter, he was considered a free-agent priority for the Vikings.

In his first season with the Vikings, Johnson, 30, thrived in head coach Mike Zimmer's scheme as a pass-rushing tackle. Playing mostly in Zimmer's sub packages, Johnson racked up 6.5 sacks, more than doubling his career total. He had 22 tackles and also forced a fumble.

Johnson, a journeyman who at one point in his career was cut by an Arena Football League team, was looking for a raise and a multi-year deal. Talks between the Vikings and Johnson's agent picked up after the NFL scouting combine two weeks ago and the sides were able to find middle ground this weekend during the league's three-day free-agent negotiating window.

The Vikings have also reached a one-year agreement to keep long snapper Cullen Loeffler, who has been with the team since 2004.

The Vikings have also had dialogue with some of their other free agents, including middle linebacker Jasper Brinkley and guard Joe Berger. But Johnson and Loeffler are the only ones who have re-signed. Since Saturday, free agents have been able to negotiate with other teams and can sign with new teams starting Tuesday.