Sebastian Valmont (Ryan Phillippe) is hit by a car and killed. At the school’s memorial service, Annette (Reese Witherspoon) and Cecile (Selma Blair) give out copies of Sebastian’s journal, which shows that Kathryn (Sarah Michelle Gellar) is to blame for everyone’s misery, and indirectly, to Sebastian’s death.
Smug rich boy Sebastian Valmont is known for loving and leaving multiple women, but he sets his sights on Annette Hargrove, the abstinent daughter of his prep school’s new headmaster. Sebastian’s scheming stepsister Kathryn Mertuil makes a bet with Sebastian: if he succeeds in bedding Annette, he can also sleep with Kathryn, but if he fails, then Kathryn gets Sebastian’s vintage Jaguar. Meanwhile, Kathryn attempts a revenge scheme against her ex by involving his new naive girlfriend Cecile Caldwell with her music teacher, Ronald Clifford.
Sebastian tries to win over Annette when she stays at his aunt’s home, but she refuses him as she already knows about his rep for womanizing. Sebastian then genuinely begins to fall in love with Annette, who returns his feelings, but can’t bring herself to admit it. Eventually, after much angsty back-and-forth, the two profess their love and then go ahead and make love. Kathryn tries to make good on her end of the deal, but Sebastian only cares for Annette now. Kathryn tricks Sebastian into dumping Annette by saying he would ruin both their reputations if he told her about their bet. Although Sebastian lies and makes Annette hate him, he regrets it after realizing Kathryn planned for this just for her amusement. He writes Annette a note and gives her his journal that details the whole thing.
Kathryn orchestrates a confrontation with Sebastian and Ronald by saying that he slept with Cecile (this is true) and that he hit Kathryn (this is not). Ronald catches him in the streets and starts to fight him, but Annette arrives and gets in the way, only to get knocked into the road as a cab is coming. Sebastian saves her but gets hit instead. He tells Annette he loves her as he dies.
At Sebastian’s funeral, Annette and Cecile turn the tables on Kathryn by distributing copies of Sebastian’s journal to everyone, who now know the truth about Kathryn, which destroys her reputation and future prospects. Annette ends up getting Sebastian’s car as well.
The film starts with Sebastian Valmont (Ryan Philippe) talking to his therapist Dr. Regina Greenbaum (Swoosie Kurtz) about his problems regarding his sexual affairs. He pretends to be cured and observes a photo of Greenbaum’s daughter Marcie (Tara Reid), commenting on how pretty she is. Not long after Sebastian leaves, Greenbaum gets a call from Marcie, who is crying her eyes out over a guy she thought she loved that put nude photos of her online. Marcie says that the guy told her she had nice legs and he wanted to photograph them, which is something Sebastian just told Greenbaum. She runs out of her office to yell at Sebastian, but he just gives her a smug smile and goes off with a girl he just met.
Sebastian’s stepsister Kathryn Mertuil (Sarah Michelle Gellar) is talking to Mrs. Bunny Caldwell (Christine Baranski) and her daughter Cecile (Selma Blair) about the prep school that she attends, with Bunny hoping that Cecile attends a good school, but Cecile is more interested in the boys there. Sebastian enters and interrupts, and it’s obvious Bunny hates his guts. After they leave, Sebastian and Kathryn discuss how she is only trying to use Cecile in a revenge scheme against a guy named Court Reynolds (Charlie O’Connell), who dumped Kathryn and got together with Cecile soon after. The two then discuss an article in Seventeen Magazine written by Annette Hargrove (Reese Witherspoon), the virginal daughter of their school’s new headmaster. Kathryn wants Sebastian to seduce Cecile but is more interested in getting Annette since she would be a challenge for him, especially since she already has a boyfriend. Kathryn then proposes a wager to Sebastian: if he succeeds in seducing Annette, Kathryn will allow Sebastian to sleep with her, but if he fails, Kathryn inherits his Jaguar XK140. Sebastian doesn’t seem interested until Kathryn promises he can “put it anywhere.” The deal is made.
Sebastian’s Aunt Helen (Louise Fletcher) introduces him to Annette as she visits his family’s estate. He starts to chat up Annette and even tries to make a move, but she makes it clear she is not interested, especially since she already knows about his reputation as a ladykiller. Sebastian gets offended and later complains about this to his friend Blaine Tuttle (Joshua Jackson). Blaine thinks that Annette was told by her ex-boyfriend Greg McConnell (Eric Mabius), whom Blaine has hooked up with in secrecy. He offers to help Sebastian get the info he wants.
Cecile is having a cello lesson with her teacher, Ronald Clifford (Sean Patrick Thomas), who shares a mutual attraction with Cecile. Kathryn shows up to interrupt and steal Cecile away. She takes her to a park for a picnic and discusses Cecile’s infatuation with Ronald. Kathryn offers to show her how to get to first base with a guy by showing Cecile how to kiss. They do a French kiss which leaves Cecile wanting more.
Sebastian makes another attempt to seduce Annette by having her join him in his pool. She joins for a little bit, but she sees through his phony attempts to be sweet and endearing to her, and she quickly leaves.
Blaine sets Greg up by getting him in bed and having Sebastian walk in at the right time to take pictures that he plans to blackmail Greg with unless he says how Annette found out about his reputation. Greg goes out of his way to find out who it could be until he spends time with Annette while walking on the beach. As he tries to hype up Sebastian to Annette, Greg finds out that Bunny is the one that told Annette about Sebastian. Because of this, Sebastian decides to go with Kathryn’s plan to seduce Cecile. He also manages to make an arrangement to go out with Annette.
Kathryn tells Bunny about Ronald and Cecile, so she goes to confront Ronald during a lesson. She is disgusted because she’s racist, and she fires Ronald, ordering him to never set foot near her daughter again. The step-siblings then call a hysterical Cecile to have Sebastian deliver a letter from Ronald. He goes to her room and tells her she is not sexy. She tries to prove him wrong and starts to undo her clothes. He tries to get her to take all her clothes off, but she becomes uncomfortable and wants to leave. Sebastian then tries to blackmail her by saying he will tell her mother about Ronald, but Cecile begs him not to. He tells her he just wants to give her a kiss. Cecile puckers up, but Sebastian tells her he doesn’t want to kiss her there. He pulls down her pants and “does the alphabet with his tongue”. Cecile later tells Kathryn about this, and she gives Cecile advice on how to please Ronald.
Sebastian continues to try and win over Annette by going to do community service at a retirement home, which bores him. He rides back home with Annette, who tries to get him to laugh by making silly faces. Despite his attempts to hold back, she succeeds and he manages to smile. However, he ends up taking Cecile to bed anyway. Despite this, he continues to think about Annette, as he starts to fall in love with her.
Sebastian and Kathryn spy on Annette as she is outside crying while reading a book. Sebastian goes to join her and starts to kiss her, but after a while, she pulls back. He asks why she won’t be with him, and she tells him that she doesn’t trust herself around him. Later that night, Sebastian confronts Annette in her room and calls her a hypocrite for talking about finding true love but rejecting it when she clearly feels the same way about him. Annette then gives in and decides to sleep with Sebastian, but he cannot bring himself to do it and starts to tell her off.
Annette leaves the house later on, but Sebastian finds out from Greg as to where she is headed. He finds her and tells her he really is in love with her, and the two kiss before going back home to finally make love.
The next day, Kathryn offers herself to Sebastian since he has won the bet, but he no longer cares about it and only wants to be with Annette. Even as Kathryn attempts to seduce him, he rejects her. He wants to tell Annette the truth, but Kathryn warns him that he will ruin both their reputations if word got out about the bet. Sebastian then goes to find Annette and lie to her, saying he never cared for her and only wanted to see what she was like in bed. Distraught, Annette tells Sebastian to go away. He returns to Kathryn to try and settle their deal, only to find that she was having relations with Ronald. Kathryn then admits to Sebastian that she knew he loved Annette and taunts him for tricking him into breaking up with her just for the fun of it.
Sebastian tries to make things right with Annette by visiting at her home, but her mother pretends that she isn’t there, knowing she doesn’t want to see him. He decides to write Annette a note and sends it to her, along with his journal detailing all of his conquests and his whole scheme with Kathryn. Meanwhile, Kathryn calls Ronald and tells him that Sebastian slept with Cecile while also lying by saying that he hit Kathryn.
Ronald catches Sebastian on the street and confronts him about what Kathryn told him. They start to fight in the streets, and Annette sees them as she had walked out to go find Sebastian. She tries to intervene, but she gets knocked into the road, just as a cab is coming that way. Sebastian runs and pushes Annette out of the way, but even as the cabbie hits the brakes, Sebastian is still struck hard. Annette runs to his side and takes his hand. He tells Annette he loves her just before he dies.
At Sebastian’s funeral, Annette catches Kathryn in the bathroom doing cocaine. She talks to her briefly before leaving. Kathryn goes up to deliver a eulogy for Sebastian, but a girl comes in and starts talking to the other attendees. People start to walk outside, and Kathryn follows them. She finds Cecile distributing copies of Sebastian’s journal, which Annette has retitled “Cruel Intentions.” Everyone becomes aware of Kathryn’s true nature and scheming, and the headmaster finds her charm bracelet containing the coke. Her reputation now destroyed, Kathryn begins to quietly weep.
The film ends with Annette driving Sebastian’s car while reminiscing about their time together.