The Paralympian sobbed as he read out the message which said: "Roses are red, violets are blue. I think today is a good day to tell you that... I love you."
It was addressed to "Ozzy" and signed "Reeves" with a smiley face and three kisses.
TOP STORIES TODAY
The card and a present of a frame containing three photographs of them together had remained unopened as Pistorius claims he could not face opening them.
On the last of five days of cross examination, prosecutor Gerrie Nel once again reduced Pistorius to tears as he asked who was to blame for the bullets that "ripped through her body".
Nel, who has the nickname 'the Pit Bull' for his style of questioning, said: "You fired four shots through the door whilst knowing that she was standing behind the door.
"She was locked into the bathroom and you armed yourself with the sole purpose of shooting and killing her."
He added: "Who should we blame for the fact that you shot her?"
Pistorius said: "I don't know my lady, (referring to the judge) I was scared. I believed there was a threat on my life."
Nel said: "Once again, we shouldn't blame you? Who should we blame?"
"I'm not sure," Pistorius replied.
On Monday Pistorius claimed neighbours who heard a woman screaming in between the gunshots that killed Reeva Steenkamp were actually hearing him screaming at a very high pitch.
"My voice was the only voice screaming that night," he told his murder trial in Pretoria. "I was screaming for help, for Reeva, for the Lord to help me. It was desperate."
Pistorius denies murder and claims he shot Steenkamp after mistaking her for an intruder.