Neighbours dialled 999 after hearing a furious row at a flat in Southwark, south east London, on Monday evening.
Police officers arrived at the Lynton Estate property to find the body of the four-year-old boy.
The 31-year-old man remained under guard in hospital after undergoing surgery for stab wounds to his neck and body.
The man's 28-year-old wife was taken to hospital suffering a stab wound to the neck. She has since been discharged. A 17-month-old girl was found unharmed.
Investigators believe the man, who has not been named, attacked his wife after she said she wanted a divorce.
Neighbours spoke of their shock on hearing the news of the death of the four-year-old and on seeing paramedics battling to keep the father alive. They said those involved were a friendly, private family who regularly attended a local church and had lived in the flat for about a year.
Kelly Turner, 34, a mother of two girls, aged seven and five, who lives on the floor above the family, said she heard the mother screaming. She said: "I heard her screaming downstairs in the car park, you could tell she was in shock because she had a wound to her neck and she was losing quite a bit of blood. She was saying 'my kids, my kids'. That is when the police came in and knocked down the door and said 'where are the children, where are the children?'"
A Metropolitan Police spokesman said the 31-year-old man was in a "serious" condition. Officers from the force's child abuse investigation command were waiting to arrest and question him.
The spokesman added that no-one has been arrested and officers are not looking for anyone else.