Longstreet serviu con distinción na Guerra México-Estados Unidos coa 8a Infantería dos EUA. Loitou baixo Zachary Taylor como tenente en maio de 1846 nas batallas de Palo Alto
e Resaca de la Palma. Relatou estas dúas batallas nas súas memorias, pero non escribiu nada sobre o seu papel persoal nelas. O 10 de xuño, Longstreet recibiu o mando da Compañía A da Oitava Infantería da Segunda División de William J. Worth. Loitou de novo co exército de Taylor na batalla de Monterrey en setembro de 1846. Durante a batalla, uns 200 lanceiros mexicanos rexeitaron a un grupo de tropas estadounidenses. Longstreet, comandando as compañías A e B, dirixiu un contraataque, matando ou ferindo a case a metade dos lanceiros. O 23 de febreiro de 1847, foi ascendido ao rango de primeiro tenente. O xeneral en xefe Winfield Scott ordenou á división de Worth saír do exército de Taylor e estar baixo o seu mando directo para participar nun asalto á capital mexicana de Cidade de México. A división de Worth foi enviada primeiro á illa Lobos. Desde alí navegou 289,7 quilómetros ao sur da cidade de Veracruz. Worth liderou o exército de Scott na súa aproximación anfibia á cidade, chegando alí o 9 de marzo. Scott asediou a cidade e sometiuno a bombardeos regulares. Entregouse o 29 de marzo. O exército americano marchou cara ao norte, cara á capital. En agosto, Longstreet serviu na batalla de Churubusco, unha batalla crucial cando o exército dos Estados Unidos se achegou a capturar a Cidade de México. O Oitavo de Infantería foi a única forza da división de Worth en chegar ás obras de terra mexicanas. Longstreet levaba a bandeira do rexemento baixo o intenso fogo mexicano. As tropas atopáronse atrapadas nunha zanxa e só podían escalar as defensas mexicanas de pé uns sobre os outros. No feroz combate corpo a corpo que se produciu, os estadounidenses prevaleceron. Longstreet foi ascendido a capitán polas súas accións en Churubusco.