USA ledet 1-0 tjue minutter inn i kampen, etter scoring av Angela Hucles, da en voldsomt uvær brøt ut over stadion i Shanghai.
En time og førti minutter senere kunne kampen gjenopptas, og Canada utlignet nærmest umiddelbart ved Christine Sinclair.
Banen var naturlig nok våt og vanskelig etter uværet, og resten av kampen ble mest rot.
Det gikk til ekstraomganger, der det strie regnet gjorde banen stadig mindre spillbar, men etter ti minutter avgjorde innbytter Natasha Kai kampen.
Dermed er OL over for Even Pelleruds Canada.
Sverige røk ut
Sverige røk også ut i kvartfinalen da de tapte 0-2 for Tyskland etter mål av Kirsten Gerefrekes og Simone Laudehr. Begge målene kom i ekstraomgangene.
Tysklands kvinnelandslag har aldri tidligere tatt gull i OL. I semifinalen møter de Brasil, som slo ut Norge tidligere i dag.
Les:
Tyskland slo Brasil 2-0 i fjorårets VM-finale.