Longstreet diende met onderscheid in de Mexicaans-Amerikaanse Oorlog met de 8e Amerikaanse Infanterie. Hij vocht onder Zachary Taylor als luitenant in mei 1846 in de veldslagen van Palo Alto.
en Resaca de la Palma. In zijn memoires vertelt hij over deze twee veldslagen, maar schrijft niets over zijn persoonlijke rol in deze veldslagen. Op 10 juni kreeg Longstreet het commando over compagnie A van de 8e Infanterie van William J. Worth's Tweede Divisie. Hij vocht opnieuw met het leger van Taylor in de Slag bij Monterrey in september 1846. Tijdens de slag dreven ongeveer 200 Mexicaanse lanciers een groep Amerikaanse troepen terug. Longstreet leidde een tegenaanval, waarbij bijna de helft van de lansiers werd gedood of gewond. Op 23 februari 1847 werd hij gepromoveerd tot eerste luitenant. Generaal-in-Chief Winfield Scott beval de divisie van Worth uit het leger van Taylor en onder zijn directe bevel om deel te nemen aan een aanval op de Mexicaanse hoofdstad Mexico City. Worth's divisie werd eerst naar Lobos Island gestuurd. Van daaruit zeilde het 289,7 kilometer naar het zuiden, naar de stad Veracruz. Worth leidde Scott's leger in zijn amfibische aanpak op de stad, en arriveerde daar op 9 maart. Scott belegerde de stad en liet haar regelmatig bombarderen. Het gaf zich op 29 maart over. Het Amerikaanse leger marcheerde vervolgens noordwaarts naar de hoofdstad. In augustus nam Longstreet deel aan de Slag bij Churubusco, een cruciale slag toen het Amerikaanse leger dichter bij de verovering van Mexico City kwam. De 8e Infanterie was de enige in Worth's divisie die de Mexicaanse grondwerken bereikte. Longstreet droeg de regimentele banier onder zwaar Mexicaans vuur. De troepen zaten vast in een greppel en konden de Mexicaanse verdediging alleen oversteken door op elkaar te staan. In de hevige hand-aan-hand gevechten die volgden, overwon de Amerikanen. Longstreet kreeg een promotie tot kapitein voor zijn acties bij Churubusco.