Longstreet melayani dengan perbedaan dalam Perang Meksiko-Amerika dengan Infantri AS ke-8. Dia bertempur di bawah Zachary Taylor sebagai letnan pada Mei 1846 dalam pertempuran Palo Alto
dan Resaca de la Palma. Dia menceritakan kedua pertempuran ini dalam memoarnya tetapi tidak menulis apa-apa tentang perannya sendiri di dalamnya. Pada tanggal 10 Juni, Longstreet diberi komando Perusahaan A dari Infantri Kedelapan dari Divisi Kedua William J. Worth. Dia bertempur lagi dengan tentara Taylor di Pertempuran Monterrey pada bulan September 1846. Selama pertempuran, sekitar 200 penembak tombak Meksiko mengusir kembali sekelompok pasukan Amerika. Longstreet, yang memerintahkan perusahaan A dan B, memimpin serangan balik, membunuh atau melukai hampir setengah dari penembak. Pada tanggal 23 Februari 1847, ia dipromosikan menjadi Letnan Pertama. Kepala Jenderal Winfield Scott memerintahkan divisi Worth keluar dari tentara Taylor dan di bawah komando langsungnya untuk berpartisipasi dalam serangan terhadap ibukota Meksiko, Mexico City. Divisi Worth dikirim pertama ke Pulau Lobos. Dari sana kapal itu berlayar sejauh 289,7 kilometer ke selatan ke kota Veracruz. Worth memimpin tentara Scott dalam pendekatan amfibi ke kota, tiba di sana pada tanggal 9 Maret. Scott mengepung kota itu dan menembakkan bom secara teratur. Mereka menyerah pada tanggal 29 Maret. Tentara Amerika kemudian berbaris ke utara menuju ibukota. Pada bulan Agustus, Longstreet bertugas dalam Pertempuran Churubusco, pertempuran penting saat Angkatan Darat AS bergerak lebih dekat untuk merebut Kota Meksiko. Infantri kedelapan adalah satu-satunya pasukan di divisi Worth untuk mencapai Mexico earthworks. Longstreet membawa bendera resimen di bawah tembakan berat Meksiko. Pasukan menemukan diri mereka terjebak di parit dan hanya bisa menembus pertahanan Meksiko dengan berdiri satu sama lain. Dalam pertarungan tangan-ke-tangan sengit yang terjadi, Amerika menang. Longstreet menerima promosi brevet menjadi kapten untuk tindakannya di Churubusco.