Après une saison passée en ligue canadienne, Marshall s'inscrit au draft de la NFL de 1960 et est sélectionné au quatrième tour, au quarante-quatrième choix par les Browns de Cleveland. Pour sa première saison en NFL, il joue douze matchs et effectue sa première récupération de fumble. Pour la saison 1961, il signe pour les Vikings du Minnesota et à partir de cette saison, va être titulaire à tous les matchs des Vikings jusqu'à la fin de sa carrière, établissant le record du plus grand nombre de matchs joués consécutivement par un joueur de NFL avec 282, record qui sera dépassé le par Jeff Feagles et le record du plus grand nombre de matchs débutés par un joueur en NFL avec 270, record battu par Brett Favre le . Il détient aussi le record du plus grand nombre de fumbles provoqués avec trente.
Le , les Vikings affrontent les 49ers de San Francisco. Marshall récupère un fumble et se trompe de camp, partant dans sa propre zone d'en-but et balançant le ballon hors des limites du terrains pour célébrer sa joie, pensant qu'il avait marquer un touchdown alors qu'en envoyant le ballon hors derrière la end-zone, il marque un safety. Ce fait de jeu est un des plus embarrassant et drôle de l'histoire de la NFL. Néanmoins, durant le même match, il provoque un fumble, permettant à Carl Eller de récupérer le ballon de marquer un touchdown et d'offrir la victoire à Minnesota 27-22.
Jim participe au Pro Bowl 1968 après une saison qui le voit provoquer un fumble et un safety. L'année suivante, il est choisi une nouvelle fois pour disputer le Pro Bowl après une excellente saison où il effectue une interception –parcourant ensuite trente yards– ainsi que deux fumbles provoqués.
Après son retrait des terrains, son numéro #70 est retiré des effectifs des Vikings du Minnesota.