On his return to Ghazni, Mu'izz al-Din made preparations to avenge his defeat. When he reached Lahore, he sent his envoy to Prithviraj to demand his submission, but the Chauhan ruler refused to comply. Prithviraj saw through Mu'izz al-Din's stratagem and issued a fervent appeal to his fellow Rajput chiefs to come to his aid against the Muslim invader.
The battle occurred in the same field as the first one. Knowing the Rajputs were well-disciplined, the Ghurids did not want to engage in melee combat with them. Instead the Ghurids army was formed into five units, and four units were sent to attack the Rajput flanks and rear. The flanking attacks failed and the fighting continued. In hopes of causing a break in the Rajput lines, Mu'izz al-Din ordered his fifth unit to feign retreat. The Rajput's charged the fleeing Ghurid unit, as the Ghurids expected. The Ghurids then sent a fresh cavalry unit of 12,000 and they managed to throw back the Rajput advance. The remaining Ghurid forces then attack and the Rajputs flee in panic. Prithviraj Chauhan abandons his elephant for a horse and tries to escape. But he is caught a few miles from the battlefield and promptly executed.