The pensioner was taken by ambulance to Edinburgh Royal Infirmary with what was believed to be only minor injuries following the collision in Marchmont.
However, doctors discovered the fracture after carrying out X-rays following the incident on Tuesday and surgeons are now set to operate in the coming days.
The collision took place on Strathearn Road at 5.15pm as the woman walked towards Beaufort Road approaching the Farmer Autocare centre.
A red Volkswagen Transporter van had stopped for traffic before driving out from the car park area and collided with her at very slow speed, knocking her to the ground.
The driver, a man in his mid-20s, was unhurt and was later spoken to by police. They are now appealing for any witnesses as officers seek to establish the cause of the collision.
They are also seeking a “Good Samaritan” who stopped to help the injured woman but left before officers had the chance to speak to her. It is believed the woman was local to the area.
Sergeant Brian Smith said: “The vehicle was leaving the car park of Farmer Autocare and had stopped because of traffic on the road. For reasons unknown as this time, the woman walking eastwards has somehow got in front of the van which has then moved off.
“The woman was treated by ambulance staff at the scene and there was no concern for her at that time. It was only when X-rays were taken that the fractured hip was discovered. It’s a very serious injury, particularly for someone who is 95 years old.”
Officers checked the area for CCTV cameras which may have caught the incident on film but were unsuccessful.
Sgt Smith added: “There would have been a number of vehicles and people going home from work at that time so we’re hoping that someone may have witnessed this collision.
“There was also a woman who came to the victim’s aid. We’ve spoken to staff at Farmer Autocare and they believe that this Good Samaritan lives locally. We would like her to come forward.”
Anyone with any information is asked to contact police on 0131-311 3131, or Crimestoppers on 0800 555 111.