Bianca (Larisa Oleynik) é uma adolescente que não vê a hora de arranjar um namorado, no entanto, o seu pai (Larry Miller) linha dura não permite que a jovem saia com os rapazes.
Após muitas conversas, pedidos e insistência da moça, o pai toma uma decisão: Bianca pode namorar, desde que a sua irmã mais velha, Katharina (Julia Stiles), também namore alguém. O problema é que Katharina é o tipo de garota que não permite que outras pessoas se aproximem da sua pessoa. Aliás, ela não pensa e pretende se envolver com ninguém.
Para resolver a situação, Cameron (Joseph Gordon-Levitt), apaixonado por Bianca, resolve negociar com Patrick Verona (Heath Ledger), para que o bad boy consiga seduzir Kat.
Em meio a toda a confusão e "rolos", os dois acabam se apaixonando perdidamente um pelo outro. No entanto, Katharina descobre todo o plano armado pelo bad boy e se decepciona com toda a situação.