Samantha Taylor struggled to compose herself a number of times as she painted a picture of an unfaithful boyfriend who was prone to fits of anger and went everywhere with his gun.
She told how they started going out after they met at a rugby match in 2010 when she was 17 years old and he added her as a friend on Facebook.
But she said there was 'a lot of commotion' in their relationship and they broke up in November 2012 because of the alleged affair with Reeva Steenkamp.
She said Pistorius took the model to a Sports Awards ceremony while they were 'still in a relationship'.
Fighting back tears, she told the court:
'He cheated on me with Reeva Steenkamp.'Pistorius watched Miss Taylor as she was consoled by her sister, clenching his jaw so hard the tendons in his cheek bulged.
Taylor described previous incidents when Pistorius thought there was an intruder trying to get into his home and he reacted by waking her up, she said.
'There was one occasion when something hit the bathroom window and Oscar woke me up and asked me if I heard it,' Taylor said. 'He got up with his gun.'But he woke you up, Nel asked.
'Yes. There was probably one or two occasions when he woke me up to ask me if I heard something,' Taylor replied.
Pistorius did not attempt to wake or locate Steenkamp before he shot the 29-year-old model by mistake, according to his own version of events.Miss Taylor also said Pistorius always kept his gun on a table by the bed at home and always slept on the right side of the bed.
Pistorius says his 9mm pistol was under the bed on the night he shot Steenkamp and he says he was sleeping on the other side of the bed because of a sports injury.
Mr Roux has contended that other witnesses who testified to hearing a woman's screams on the night of the killing were mistaken and that they were actually woman-like screams of Pistorius.
Miss Taylor, however, said she had heard Pistorius shouting at her and other people and that he did not sound like a woman.
'He sounds like a man,' she said.She later went on to describe an occasion when a furious Pistorius fired a bullet out of a car sunroof after getting into an argument with a police officer.
Miss Taylor said he carried a gun with him 'all the time' when they were dating
She later broke down in the witness box while describing how their relationship ended when he cheated on her with Reeva Steenkamp, the woman he is accused of murdering.
Giving evidence for the prosecution, Miss Taylor told of one occasion in 2010 when they were pulled over because the car they were travelling in was speeding.Miss Taylor also described another incident in which she and Pistorius were followed by an unidentified car as he drove home.
She said Pistorius had left his gun on the seat when ordered to get out of the vehicle, but the officer said he wasn't allowed to leave it there unattended.
The officer then picked up the weapon and emptied the magazine so the bullets fell into the car.
Miss Taylor said: 'Oscar got very angry. He shouted at the policeman because he was not allowed to touch his gun.'
Pistorius later joked about wanting to 'shoot a robot' - a traffic light - and around 15 minutes later fired a bullet out of the open sunroof.
He and his friend Darren Fresco, who was driving, were laughing at the time, according to Taylor.
The testimony from Taylor comes two days after the court heard how Pistorius accidentally fired a pistol under the table in a packed Johannesburg restaurant - right next to a child - and then asked Mr Fresco to take the blame.
'When we arrived at his estate, he jumped out of the car with his gun and held it to someone's window and then they drove away,' Taylor said.The court adjourned briefly after Taylor broke down in tears while describing how Pistorius cheated on her with Reeva Steenkamp.