I think Romeo's choosing to keep his secret about why he won't fight with Tybalt is most at fault for Mercutio's death. Romeo makes a great point to Tybalt that he loves him, but never gets out WHY! This would have helped considerably under the circumstances.
This appeared to Mercutio as weakness in Romeo and he went after Tybalt then in defense of his friend, Romeo. Tybalt wasn't about to take that and it resulted in a cheap shot to Mercutio.
Obviously Romeo never intended for this to happen, but he certainly had the ability to have prevented the situation by just letting everyone know there is a new relationship brewing that would drive the families together.
One should understand the background and the context in which this unfortunate tragedy occurs. It all begins when Romeo attends the Capulet masked ball obviously uninvited. He slips into the festive celebration and is seen by Tybalt who is furious and wants to kill him. Tybalt informs his uncle, Lord Capulet, that he has seen the young Montague and deems it an offense that he dares to gatecrash their party.
Lord Capulet tells Tybalt to leave Romeo alone and to be patient. He does not want his party disrupted. When Tybalt insists that he shall not "endure" Romeo, he is sternly reprimanded by his uncle and told to behave. Tybalt is terribly upset and feels humiliated and promises to avenge Romeo's intrusion.
Tybalt is so overwhelmed by bitterness and hatred that he later sends a written challenge to the Montague household in which he requests a duel. When later in Act lll, scene l, he confronts Romeo, the latter refuses to fight him. Romeo has fallen for Juliet and states that he loves Tybalt for reasons he does not divulge. The hot-tempered Mercutio sees Romeo's refusal to fight Tybalt as shameful and he takes up the challenge.
The two start duelling and Romeo, in an attempt to intervene, inadvertently gives Tybalt the advantage. Tybalt stabs Mercutio under Romeo's arm and runs away with his friends. Mercutio is mortally wounded and later succumbs to his injury. It is in this way that Romeo is accidently responsible for Mercutio's death.
This incident sets in motion a series of events which eventually result in greater misery. Romeo avenges Mercutio's death by killing Tybalt. He is then banished from Verona by the prince at the risk of execution if he should return. The lovesick Romeo and Juliet then turn to desperate measures to overcome their separation and both end up, due to an unfortunate mishap in an ill-conceived plan, committing suicide.
Romeo is responsible for Mercutio's death because he is holding Mercutio back when Tybalt stabs Mercutio and kills him.
Tybalt has confronted Mercutio and Romeo as they walk down the street. He wants to fight Romeo. Romeo is trying to persuade Tybalt not to fight. He is telling him that he loves him (because he's married to Juliet now and they are family -- but he can't tell Tybalt that).
Mercutio and Tybalt start to fight, but Romeo holds Mercutio back. Tybalt stabs him under Romeo's arm. Because of that, Romeo kills Tybalt in revenge.