Во время Мексиканской войны Лонгстрит служил в 8-м пехотном полку. 23 февраля 1847 года он получил звание первого лейтенанта, а 20 августа — временное звание капитана за сражения при Контрерас и Чурубуско, затем 8 сентября — временное звание майора за Молино дель Рей. В сражении при Чапультепеке 12 сентября 1847 он был ранен, когда шёл в атаку со знаменем в руках. Знамя он передал своему другу Джорджу Пикетту, который продолжил атаку.