Il est promu major général des volontaires le . Du au , il commande le XVII corps de l'armée du Tennessee. Il participe à la seconde campagne de Vicksburg et notamment aux batailles de Jackson, de Champion Hill et de Big Black River Bridge. Le général Grant après avoir assemblé à Milliken's Bend, envoie McPherson au sud sur la rive gauche du fleuve Mississippi pour qu'il se joigne aux unités du général McClernand. Son unité est placée au centre du siège et est la première à entrer dans la ville de Vicksburg. Il est nommé brigadier général des États-Unis le .