화니걸은 촌스럽게 생긴 유태계 여인, 화니 브라이스가 자신의 일생을 회상하는 장면에서 시작된다. 전혀 배우감이 아닌 용모에도 불구하고 그녀는 브로드웨이 댄서를 지망한다. 우여곡절 끝에 그녀는 댄스쇼와 롤러스케이트쇼에 출연하지만 실수만 연발한다. 그러나 그녀의 실수가 오히려 관객들의 웃음을 유발하고 화니는 본의 아니게 스타로 부상한다. 그녀는 도박꾼 니키를 만나 사랑에 빠져 결혼까지 하게 되지만 니키는 부인의 지나친 유명세를 괴로워한 나머지 다시 도박에 손을 댄다. 결국 니키는 감옥에 가게 되고 1년 뒤에 화니를 찾아온다. 그러나 니키는 자신이 화니의 장래에 방해가 될 거라고 생각하고 그녀에게 이별을 고한다.

친구의 애인인 매력적인 아만다(크리스티나 리치)에게 첫 눈에 반한 젊은 극작가 제리(제이슨 빅스)는 우연을 가장한 만남을 통해 아만다에게 사랑고백을 하고 자신의 여자친구와도 헤어지고 새로운 사랑에 돌입한다. 짜릿한 행복도 잠시, 제 멋대로 이기적인 성격에 섹스분위기가 잘 안 잡힌다는 이유로 잠자리 마저 거부하는 아만다의 까다로움에 제리는 난감하기만 한데 설상가상 가수를 꿈꾸는 아만다의 엄마까지 찾아와 기막힌(?) 동거가 시작된다. 제리는 답답한 마음에 모든 일에 참견하고 조언하는 친구 도벨(우디 앨런)에게 속을 털어놓지만 그의 충고는 여자친구의 뒷조사를 하라거나 총이 필요하다는 둥 황당하기만 하다. 하지만 점점 도벨의 이야기에 솔깃해진 제리는 그의 충고대로 해보는데...