Jesse (Jason James Richter) é um menino órfão que costumava saltar de orfanato em orfanato, até que passou a viver nas ruas. Numa noite, ele e seu amigo Perry (Michael Bacall) são flagrados pelo policial Dwight (Mykel T. Williamson) pixando um parque local. Apesar da situação, o agente de policia simpatiza com Jesse e o apresenta para Glen e Annie Greenwood (Michael Madsen e Jayne Atkinson) que adotam o garoto. Como punição, Jesse tem que limpar a sujeira que ele fez no parque e lá conhece Willy, uma orca. No entanto, Willy não responde bem ao adestramento. Ela foi roubada de sua família por um pescador mercenário e ainda está traumatizada. Jesse e Willy desenvolvem uma estreita ligação emocional. Só que o dono do parque não está satisfeito com o desempenho de Willy e calcula que a orca vale mais viva do que morta. A partir daí Jesse fará de tudo para salvar o animal e devolvê-lo para o oceano.