RCMP say the two victims were pulled from the outdoor pool just before 9 p.m. PT by residents at the Evergreen apartment complex, near the intersection of 105th Avenue and 150th Street in the Guildford area of the Metro Vancouver suburb.
A witness told CBC News the boy, who was 20 months old, ran away from the woman, aged 51, and jumped in the pool. The woman then jumped in to save the child but was unable to swim herself.
Both victims were in the water for a significant amount of time before witnesses managed to pull them out, say police.
Staff Sgt. Murray Hedderson said bystanders had started CPR by the time paramedics arrived.
Both were rushed to hospital, but the child could not be saved. The woman was revived, but was in critical and unstable condition in the intensive care unit.
RCMP are investigating, but Hedderson says the incident appears to be a tragic accident.
Police have not released the identities of the victims.