Cannavaro said: "When you are missing a player like Ruud Van Nistelrooy it is always difficult to replace him. I think what we lacked today though, especially in the first half, was the right aggression and determination to overturn the result."
The Giallorossi were already leading 2-1 from the first leg, but emerged with an identical result from the Bernabeu to qualify 4-2 on aggregate.
"Roma certainly played better tonight than they did in the first leg, but we helped them as we were unable to push them or get superiority down the flanks and it was not a great performance from Real."
Cannavaro also blamed himself for the final goal, as Mirko Vucinic got in front of him to head in Christian Panucci's free kick.
"I should have taken a step back and marked Vucinic more closely, but it was at the end of the game, there was tension and tiredness and I expected the goalkeeper to come out and claim the ball."
He added: "Considering our elimination, the absence of these players made a big difference. These people bring quality and can decide a game at any moment, but as a team we are Real Madrid and didn't play to our standards.
"We handed the first half to Roma, as we allowed them to play and didn't use enough intensity. I don't know if it was because we were afraid of their counter that had been so effective in the first leg, but we just handed it to them.
"Roma have proved they are a great squad and did not come to Madrid to defend the result. As soon as we saw their line-up we knew they wanted to play football and win it, so they deserve credit and respect."