Two girls, Agnes and Elin, attend school in the small town of Åmål, Sweden. Elin is outgoing and popular but finds her life unsatisfying and dull. Agnes, by contrast, has no real friends and is constantly depressed. Agnes is in love with Elin but cannot find any way to express it.
Agnes’s parents worry about their daughter’s reclusive life and try to be reassuring. Her mother decides, against Agnes’s will, to throw a 16th birthday party for her. Agnes is afraid no one will come. Viktoria, a girl in a wheelchair, shows up and Agnes shouts at her in front of her parents, telling her they are friends only because no one else will talk to them. Agnes, overcome with anger and depression, goes to her room and cries into her pillow shouting that she wishes she were dead, while her father tries to soothe her. Viktoria leaves and Agnes’s family eats the food made for the party.
Elin arrives at Agnes’s house, mainly as an excuse to avoid going to another party, where there will be a boy (Johan, played by Mathias Rust) she wants to avoid. Elin’s older sister, Jessica, who comes with her, dares her to kiss Agnes, who is rumoured to be a lesbian. Elin fulfills the dare and then runs out with Jessica, only to soon feel guilty for having humiliated Agnes.
After becoming drunk at the other party, Elin gets sick and throws up. Johan tries to help her and ends up professing his love to her. Elin leaves Johan and the party, only to return to Agnes’s house to apologize for how she acted earlier. In doing so, Elin stops Agnes from cutting herself. She even manages to persuade Agnes to return with her to the other party. On the way, Elin shares her real feelings about being trapped in Åmål. She asks Agnes about being a lesbian and believes that their problems could be solved by leaving Åmål and going to Stockholm. On impulse, Elin persuades Agnes to hitchhike to Stockholm, which is a five-hour journey by car. They find a driver who agrees to take them, believing them to be sisters who are visiting their grandmother. While sitting in the back seat, they have their first real kiss. The driver sees them and, shocked at the behaviour of the two ‘sisters’, orders them to leave the car.
Elin discovers that she is attracted to Agnes but is afraid to admit it. She proceeds to ignore Agnes and refuses to talk to her. Elin’s sister Jessica sees that she is in love and pushes her to figure out who it is. To cover the fact that she is in love with Agnes, Elin lies, pretending to be in love with Johan, and loses her virginity during a short-lived relationship with him. Elin eventually admits her feelings, when, after a climactic scene in a school bathroom, they are forced to ‘out’ their relationship to the school.
The film ends with Elin and Agnes sitting in Elin’s bedroom drinking chocolate milk. Elin explains that she often adds too much chocolate until her milk is nearly black. She must fill another glass with milk and mix it and that her sister Jessica often gets mad that she finishes the chocolate. Elin has the last word saying “It makes a lot of chocolate milk. But that doesn’t matter.”