''I just remember her waking me, screaming and saying 'I lost control','' the father of two said yesterday.
''We must have hit the gravel on the other side of the road, which tossed us back around, and then I saw the headlights of the vehicle coming the other way.''
In the collision, he lost his glasses, which left him ''basically blind''.
''It was pitch black, I was blind. I couldn't see my wee girls, I couldn't get out the door. My partner was talking to me but she was in and out of consciousness - it was one of those horror moments.''
The family was taken to hospital in Balclutha.
Mr McPherson and his 3-year-old daughter, Katelyn, were assessed there, while Madison and Ms Peyton were taken to Dunedin Hospital by helicopter.
''The last moment I said goodbye to her, I thought I might never see her again,'' he said, visibly upset.
''When I left her, she was still covered in blood.''
He received a call to reassure him his partner and daughter's injuries were not life-threatening.
''That was just a big relief,'' he said.
Madison received a large cut to her forehead, her lip was torn from her gum and her spleen was ruptured.
Katelyn had given him strength while he waited for news about the rest of his family, as she was ''all smiles'', he said.
The family's dog, a poodle named Bonnie, had escaped from the car after the crash and was hit by another vehicle.
''It was another blow,'' he said.
''That was our only car and we lost the wee dog, which is quite sad because she was the kids' favourite. She slept on the beds every night at home.''
He had not told the children about the pet as he was waiting for them to be ''in a better mood''.
The family had intended to holiday in Christchurch before Christmas last year.
Those plans, however, had to be put on hold because Mr McPherson broke his leg.
The family's car had only third-party insurance, which did not cover the cost of towing.
''It's nearly $300 already so it's just another blow on top of everything,'' Mr McPherson said.
Madison and Ms Peyton were stable in Dunedin Hospital last night.