Bali ou Mahabali est le fils de Virochana et de Vishalakshi. Il était l'arrière-petit-fils de Hiranyakashipu, le petit-fils de Prahlada et le fils de Virochana. Après avoir tué Hiranyakashipu, Vishnou promit au dévot Prahlada qu'il ne tuerait plus personne né dans ce clan. Son grand-père, Prahlada, lui enseigna la vertu et la dévotion et quand Bali lui succéda en tant que roi des Asuras son règne fut caractérisé par la paix et la prospérité.
Bali, en tant qu'Asura, possédait l'amrita, la liqueur d'immortalité, ce qui lui permettait de rappeler à la vie les soldats tués lors des nombreuses guerres que le roi menait contre les suras (devas). Après de nombreuses guerres, l'invincible Bali conquit le ciel et la terre et les devas vinrent trouver Vishnou pour qu'il les sauve de l'anéantissement complet. Vishnou ne voulut pas s'immicer dans la guerre d'autant plus que Bali était un de ses dévots particulièrement actif. Toutefois il devait restaurer le dharma. Il s'incarna sous la forme d'un avatar de petite taille, Vamana.

Pour fêter ses victoires, Bali organisa le sacrifice ashvamedha et distribua des présents aux participants, alors Vamana s'approcha de lui et lui demanda « trois pas de terre ». Mahabali accéda à la demande et il prit le kamandalu pour verser de l'eau pour signifier symboliquement le don à Vamana. Shukra, le gourou du roi, avait réalisé la véritable identité de Vamana, il essaya d'empêcher l'écoulement de l'eau du kamandalu en bloquant la bec verseur, Vamana perça le bec verseur.
Vamana prit la forme colossale de Vishnou, le trivikrama, le premier pas engloba tout le ciel, le second pas engloba la terre entière et il se demanda où posait le troisième pas. Bali accepta son sort et offrit sa propre tête. Selon les textes Bali fut trainé dans la Patala par Garuda ou bien Vishnou l'entraina vers le paradis.
Dans une version de l'histoire Bali lui offre sa propre tête car il comprend que Vamana est un avatar de Vishnou. Vishnu envoie le roi à Patala, mais voyant le geste de Mahabali, il souhaite que Bali lui demande une faveur. Bali souhaite que Vishnou demeure avec lui dans son palais à Patala afin de le servir. Cependant, lorsque la déesse Lakshmi l'apprend, elle n'approuve pas. Elle se rend à Patala, fait de Mahabali son frère et lui demande de laisser son mari revenir vers elle à Vaikuntha. En réponse à cette situation, Vishnu décide qu'il visitera le palais de Mahabali chaque année et s'y reposera/dormira pendant quatre mois. Pour s'assurer que le monde continue de fonctionner pendant qu'il se repose à Patala, Vishnu a confié sa responsabilité de diriger le monde à Shiva. Ces quatre mois, pendant lesquels Vishnu se repose et Shiva dirige le monde, sont connus sous le nom de Chaturmas.
La fille de Bali, Ratnamala, voulait Vamana comme son fils et souhaita lui donner le sein. mais après la défaite de son père elle jura de le tuer. Le prochain avatar de Vishnou, Krishna, donna à Putana, la nouvelle incarnation de Ratnamalala, vaine possibilité d'accéder à son souhait.
Le roi Bali vient au Kerala chaque année à l'occasion de « Onam » pour rendre visite à ses sujets bien-aimés. C'est l'un des plus beaux festivals du Kerala avec la course de chundans, ces bateaux-serpents longs de plus de 30 m et les pookalams, de somptueux tapis de fleurs.