A área ao longo de Buffalo Bayou tinha muitos bosques de carvalhos grossos, separados por pântanos. Este tipo de terreno era familiar aos texanos e bastante estranho aos soldados mexicanos. O exército de Houston, compreendendo 900 homens, chegou a Lynch's Ferry no meio da manhã de 20 de abril; A força de 700 homens de Santa Anna chegou algumas horas depois. Os texanos acamparam em uma área arborizada ao longo da margem do Buffalo Bayou; embora o local fornecesse uma boa cobertura e ajudasse a esconder toda a sua força, também não deixava espaço para os texanos recuarem. Sob os protestos de vários de seus oficiais, Santa Anna optou por acampar em um local vulnerável, uma planície próxima ao rio San Jacinto, margeada por bosques de um lado, pântano e lago do outro. Os dois campos estavam separados por aproximadamente 500 jardas (460 m), separados por uma área gramada com uma ligeira elevação no meio. Posteriormente, o coronel Pedro Delgado escreveu que "o acampamento escolhido por Sua Excelência era, em todos os aspectos, contra as regras militares. Qualquer jovem teria se saído melhor".
Nas horas seguintes, ocorreram duas breves escaramuças. Os texanos venceram o primeiro, forçando um pequeno grupo de dragões e a artilharia mexicana a se retirarem. Os dragões mexicanos então forçaram a cavalaria texana a se retirar. Na confusão, Rusk, a pé para recarregar seu rifle, quase foi capturado por soldados mexicanos, mas foi resgatado pelo recém-chegado voluntário texano Mirabeau B. Lamar . Apesar das objeções de Houston, muitos soldados de infantaria correram para o campo. Quando a cavalaria texana recuou, Lamar ficou para trás para resgatar outro texano que havia sido jogado de seu cavalo; Os oficiais mexicanos "supostamente aplaudiram" sua bravura. Houston estava irado porque a infantaria havia desobedecido suas ordens e dado a Santa Anna uma estimativa melhor de sua força; os homens estavam igualmente chateados por Houston não ter permitido uma batalha completa.
Ao longo da noite, as tropas mexicanas trabalharam para fortalecer seu acampamento, criando parapeitos de tudo que puderam encontrar, incluindo selas e escova. Às 9h do dia 21 de abril, Cos chegou com 540 reforços, elevando a força mexicana para 1.200 homens, que superavam os texanos. Os homens de Cos eram recrutas inexperientes, em vez de soldados experientes, e haviam marchado continuamente por mais de 24 horas, sem descanso e sem comida. À medida que a manhã avançava sem nenhum ataque texano, os oficiais mexicanos baixaram a guarda. À tarde, Santa Anna deu permissão para os homens de Cos dormirem; suas próprias tropas cansadas também aproveitaram o tempo para descansar, comer e tomar banho.
Não muito depois da chegada dos reforços mexicanos, Houston ordenou que Smith destruísse a Ponte de Vince , a 5 milhas (8,0 km) de distância, para desacelerar quaisquer novos reforços mexicanos. Às quatro da tarde, os texanos começaram a rastejar silenciosamente pela grama alta, puxando o canhão atrás deles. O canhão texano disparou às 4h30, dando início à batalha de San Jacinto . Depois de um único voleio, os texanos romperam as fileiras e invadiram os parapeitos mexicanos para entrarem em combate corpo a corpo. Os soldados mexicanos foram pegos completamente de surpresa. Santa Anna, Castrillón e Almonte gritavam ordens frequentemente conflitantes, tentando organizar seus homens em alguma forma de defesa. Em 18 minutos, os soldados mexicanos abandonaram seu acampamento e fugiram para salvar suas vidas. A matança durou horas.
Muitos soldados mexicanos recuaram pelo pântano até o lago Peggy. Os fuzileiros texanos posicionaram-se nas margens e atiraram em tudo que se movia. Muitos oficiais texanos, incluindo Houston e Rusk, tentaram impedir o massacre, mas não conseguiram controlar os homens. Os texanos continuaram a gritar "Lembre-se do Álamo! Lembre-se de Goliad!" enquanto a assustada infantaria mexicana gritava "Me no Alamo!" e implorou por misericórdia sem sucesso. No que o historiador Davis chamou de "uma das vitórias mais unilaterais da história", 650 soldados mexicanos foram mortos e 300 capturados. Onze texanos morreram e outros 30 ficaram feridos, incluindo Houston.