Practices of Hindu animal sacrifice are mostly associated with Vedic religion. Animal sacrifices were carried out in ancient times in India. The Yajurveda is considered the Veda of sacrifices and rituals, and consists of a number of animal sacrifices, such as mantras and procedures for the sacrifices of a white goat to Vayu, a calf to Sarasvati, a speckled ox to Savitr, a bull to Indra, a castrated ox to Varuna and so on. In vedic sacrifices the sacrificed animals were not consumed as food later. They were offerings to gods for favors. The indigenous religions of India only offered animals which they consumed as food later. Buddhism criticized unnecessary sacrifices of animals in Vedic religion. Later some Puranas forbid animal sacrifice in vedic religion.
A Sanskrit term used for animal sacrifice is bali, in origin meaning "tribute, offering or oblation" generically ("vegetable oblations [... and] animal oblations,"). Bali among other things "refers to the blood of an animal" and is sometimes known as Jhatka Bali among Hindus.
The Kalika Purana distinguishes bali (sacrifice), mahabali (great sacrifice), for the ritual killing of goats, elephant, respectively, though the reference to humans in Shakti theology is symbolic and done in effigy in modern times. For instance, Sir John Woodroffe published a commentary on the Karpuradistotram, where he writes that the sacrificial animals listed in verse 19 are symbols for the six enemies, with "man" representing pride.
It is a ritual that is practiced today and is mentioned in Medieval Hinduism too. It is important to note that the practice of animal sacrifice is not a required ritual in some sects of Hinduism. The majority of practicing Hindus today choose not to participate in or acknowledge the practice. Adherents of the Sakta sect of Hinduism hold this to be a central tenet of their belief.
The Ashvamedha ritual - in which a horse is sacrificed - is described in the Rigveda, the Shukla Yajurveda, the Taittiriya Shakha of Yajurveda, the Shatapatha Brahmana and in the Srauta-sutras of the Aitareya Brahmana and in the Kaushtikati Brahmana of the Rigveda. In the Brihadaranyaka Upanishad the symbolism of the sacrifice is described, with the horse symbolising the cosmos. In the Ramayana, Rama performed the Ashvamedha sacrifice for becoming the Chakravartin emperor. In the Mahabharata, Yudhishtra performs the Ashwamedha after winning the Kurukshetra war to become the Chakravartin emperor. The Mahabharata also contains a description of an Ashvamedha performed by the Chedi king Uparichara Vasu, however, no animals were sacrificed. The rulers of the Gupta empire, the Chalukya dynasty, and the Chola dynasty all performed the Ashvamedha.