Sally Bowles est une chanteuse américaine qui se produit dans le cabaret Kit Kat Klub à Berlin au début des années 1930. Elle loue une chambre à Brian, un Anglais réservé, universitaire et écrivain, qui vient d'arriver à Berlin pour écrire sa thèse de philosophie. Brian donne des leçons d'anglais pour gagner sa vie, tout en poursuivant ses études. Sally essaie sans succès de le séduire et pense d'abord qu'il est homosexuel. Ils deviennent amis et Brian est le témoin de la vie chaotique de Sally durant les derniers jours de la République de Weimar. Brian et Sally deviennent bientôt amants.
Un riche playboy, Max (Maximilian von Heune), les prend en amitié. Il les invite dans les meilleurs restaurants, couvre Sally de cadeaux somptueux (un manteau de fourrure notamment), les invite dans un château. Cet aristocrate séduisant affirme à Brian que l'Allemagne gardera sous contrôle les nazis, des brutes à ses yeux, mais qui auront l'avantage de débarrasser le pays des communistes. Max séduit Sally et Brian, puis les abandonne, laissant Sally enceinte sans qu'elle sache qui est le père. Brian propose à Sally le mariage et une vie d'universitaire à Cambridge. Sally se rend compte qu'elle ne pourra jamais mener une vie si tranquille. Elle le quitte après avoir avorté.
Le film se termine par le départ de Brian pour l'Angleterre, tandis que Sally continue sa vie à Berlin. Le maître de cérémonie du Kit Kat Klub est toujours montré dans son rôle de meneur de revue, annonçant, avec des clins d'œil de connivence à la caméra, que la fête sera bientôt finie.
Dans une intrigue secondaire, Fritz, un élève désargenté de Brian, veut séduire une riche héritière juive, Natalia. Mais il s'aperçoit qu'il tombe amoureux de la jeune fille. Cette dernière l'aime aussi, mais étant juive dans une Allemagne où monte le nazisme, elle rejette leur union comme impossible après qu'il l'a demandée en mariage. Fritz est en réalité un juif qui s'était fait passer pour protestant afin d'échapper à l'antisémitisme. Il finit par l'avouer à Natalia, et les jeunes gens se marient à la synagogue. Nous sommes laissés dans le doute sur ce que sera leur destin.
La montée en puissance de la violence nazie est montrée à plusieurs reprises dans le film. Dans le cabaret, dont les chansons et les danses ponctuent le film — avec ou sans Sally Bowles —, la montée du national-socialisme apparaît en filigrane avec notamment dans le morceau final un reflet de la salle, où l'on voit plusieurs hommes en uniforme nazi, arborant la croix gammée.
Le film est inspiré de la comédie musicaleCabaret de John Kander et Fred Ebb, montée avec un grand succès à New York en 1966 avec Jill Haworth (Sally Bowles), Joel Grey (le maître de cérémonie) et Lotte Lenya (Fraulein Schneider). La comédie musicale est, elle-même, adaptée de la pièce I Am a Camera du dramaturge anglais John Van Druten (publié en 1951) et du recueil de nouvelles Adieu à Berlin (publié en 1939) de l'écrivain anglais Christopher Isherwood. Le film fait également penser à L'Ange bleu (film de 1930). La posture de Liza Minnelli sur une chaise rappelle celle de Marlène Dietrich sur un tonneau. Si l'intrigue du film Cabaret est différente de celle de L'Ange bleu, la montée du nazisme était déjà en filigrane dans le film de 1930, et encore plus explicite avec le recul du temps dans Cabaret.