태평양 연안의 바다. 한떼의 오르카 고래 무리가 유유히 헤엄치는데 갑자기 고래선이 나타난다. 날아오는 창에 맞은 고래의 피로 물드는 바다. 이곳으로 윌리는 새로운 가족 무리와 함께 찾아온다. 17세가 된 제시(Jesse: 제이슨 제임스 릭터 분)는 윌리에 대한 추억을 간직한 채 여름 방학 아르바이트로 고래를 연구하는 배에 랜돌프(Randolph Johnson: 오거스트 쉘렌버그 분)와 함께 승선하게 된다. 그들은 이 지역 바다에서의 오르카 고래의 감소를 연구할 목적이었다. 멀지 않은 곳에서는 10세 소년 맥스(Max Wesley: 빈센트 베리 분)가 아버지 존(John: 패트릭 킬패트릭 분)과 함께 배를 타고 항해 중이었다. 그러나 맥스는 자신의 아버지가 불법으로 고래 사냥을 한다는 것을 알고 실망하는데...
양부모와 함께 행복한 나날을 보내던 제시앞에 친엄마의 사망소식과 함께 배다른 남동생 엘비스가 나타난다. 엄마가 자신은 버려두고 다른 아이를 키웠다는 것만으로도 화가 나는데, 더구나 버릇없고 허풍이 심한 골칫덩이니 도저히 곱게 봐줄수가 없다. 양부모, 엘비스와 함께 랜돌프가 있는 바닷가로 휴가 여행을 간 제시는 오랜만에 윌리를 만나 재회의 기쁨을 나누고 예쁜 여자친구 네이딘도 사귀게된다. 그러나 근처를 지나던 유조선이 좌초되면서 기름이 유출되는 사고가 발생하고, 기름띠로 만에 갇히게 된 윌리 가족을 구하기 위해 제시가족과 구조대가 정신없이 뛰어 다니는 동안, 소외감을 느낀 엘비스는 도망을 친다. 그러나 우연히 구조책임자인 정유회사 간부와 동물 브로커가 윌리 가족을 몰래 팔아넘기려한다는 사실을 알게된 엘비스는 다시 돌아와 이 사실을 전하고 제시와 제이딘, 엘비스는 윌리 가족을 구하기 위해 기름 바다로 뛰어든다. 다행히 고래들은 불붙은 기름띠 밖으로 안전하게 나가지만 아이들이 탄 보트는 불길에 휩싸이게 된다. 구조대에 의해 엘비스와 네이딘은 간신히 구조되지만 제시는 불바다로 떨어져 허우적거리게 되는데. 바로 그 순간 윌리가 나타나는데...
프랭크(Frank Wheeler: 마이클 패트릭 카터 분)와 브랜드(Brad: 아담 라보그나 분) 그리고 케빈(Kevin Clean: 브라이언 크리스토퍼 분)은 작은 교회 마을에 살고 있는 말썽꾸러기 악동들이다. 비디오나 잡지를 보면서 한창 호기심에 들떠 있던 이들은 돈을 주면 여자의 벗은 모습을 볼 수 있다는 소문을 듣고 돈을 모아 도시에 가기로 한다. 도시에 도착한 이들은 매춘부를 찾으러 돌아 다니지만 번번히 난관에 부딪힌다. 이렇게 헤매다니는 이들에게 한 부랑자가 접근해 돈을 뺏으려 하지만 브이(V: 멜라니 그리피스 분)라는 매춘부가 나타나 무사히 구해준다. 애들의 소원이 돈을 내고 여자의 벗은 모습을 보는 거라고 말에 브이는 쾌히 상반신을 보여준다. 아주 짧은 순간만. 어쨌든 아이들을 집까지 데려다 주기 위해 마을로 함께 간 브이는 프랭크의 아버지 탐(Tom Wheeler: 에드 해리스 분)을 만나게 된다. 브이와 탐은 아이들이 꾸며낸 말을 듣고 서로에 대해 호감을 가지기 시작하는데.