Adams, who waited 31 appearances across all competitions before finding the net for Southampton, cancelled out John Lunstram’s opener before adding a second on 71 minutes.
The forward drew Saints level shortly after the break after holding off his defender long enough to power a right-footed effort inside the near the post, before pouncing on a rebound to put the hosts up 2-1.
Danny Ings added a third from the penalty spot seven-minutes from full-time to finish on 22 league goals for the season and just one behind the golden boot winner, Leicester City’s Jamie Vardy.
Sheffield limped into the summer break on the back of three successive defeats in their return to top-flight football, despite making the better start of the two sides.
Lundstram took advantage of slack defending for the opening goal when the ball broke kindly for the midfielder to fire underneath Alex McCarthy, but he failed to add to the lead in quick succession.
Southampton came out of the break stronger and Adams pulled the hosts level five minutes after the restart when his right-footed effort found the bottom corner.
Adams, who closed the season by scoring in consecutive games, then hit the net from a tight angle from the right side of the box.
Ings won a penalty in the 84th minute after being tripped up in the box and calmly stepped up to convert to send Southampton on their way to an 11th place league finish.
Southampton: McCarthy, Bertrand, Stephens, Vestergaard, Walker-Peters, Romeu (Obafemi 90), Ward-Prowse, Armstrong (Smallbone 30), Redmond, Ings, Adams (Long 85)
Unused subs: Gunn (GK), Valery, Vokins, Bednarek, Danso, N’Lundulu
Goals: Adams (50, 71)
Sheffield: Henderson, Stevens, Robinson, Egan, Basham (Norwood 81), Baldock, Berge, Fleck, Lundstrom, McBurnie (Zivkovic 52), Sharp (Clarke 70)
Unused subs: Moore (GK), Jagielka, Norwood, Freeman, Osborn, Rodwell
Goals: Lundstram (26)