technically, voldemort killed himself, but if harry wasn't fighting him then he wouldn't have cast the spell that backfired. so overall, i would say that harry killed him because he was fighting him and he was the rightful owner of the Elder Wand.
It was more like Voldemort killed himself because of deux ex machina. Harry randomly became master of the elder wand many chapters before the final confrontation, and so it would not work on Harry. Voldemort didn't really have a choice, considering that all the other fighters at Hogwarts were now protected by Harry's love sacrifice, so his spells wouldn't work on any of them. So his last curse was an act of desperation.
Let me quote the book on this one, then I'll explain.
"Then…I'm dead too?"
"Ah," said Dumbledore, smiling still more broadly, "That is the question, isn't it? On the whole, dear boy, I think not."
"Not?" repeated Harry.
"…I didn't defend myself! I meant to let him kill me!"
"And that…will, I think, have made all the difference."
Harry no more caused his "death" than anyone else. But, I'll get into that a bit later. First, a bit about the Elder Wand.
The Elder Wand never backfired on Voldemort. Harry was able to overpower it. Don't even think about asking me how. There are some questions even I can't answer.
Harry was ready to die. Just like his ancestor, Ignotus Peverell, he accepted Death as an old friend. Voldemort, on the other hand, feared Death. He saw Death as a sign of weakness. Thus, his attempts at immortality. In the end, Voldemort's fear overcame him. It became his undoing.
He was so afraid of Death that he handed Harry the best weapons to destroy him with. He obsessed over his Horcruxes and the prophecy.
As Dumbledore said, the fact that Harry meant to die made all the difference. Also, Voldemort, when he cast the fatal spell, attacked the bit of his own soul inside Harry first. Just as it is with inanimate Horcruxes, the soul in it is the first to go. They depend wholly on their containers.
The curse killed Harry's body. Not his soul. His soul remained untouched by the curse.