The only time Vieira really got the better of Keane was for a couple of years after Keane started declining. Before that, and then once again after Vieira himself started declining a couple of years later, Keane came out on top the significant majority of times.
Keane was comfortably better defensively than Vieira. A lot of people seem to forget that Vieira pretty much always played with a more defensive midfielder next to him, and when he was asked to play that role himself he never looked as good. Whereas Keane comfortably played both roles throughout his career, to the extent that he spent years running the midfield next to a very attacking Scholes next to him. Vieira simply could not have handled that to the same level.