For a start I think it's far too early to declare any 'side' as a winner here - .NET hasn't been around long enough to really judge that. There are certain spaces where .NET far outstrips Java and vice versa. This may continue to happen, they may get much closer together or even further apart.
The whole point that so many people seem to forget is that which technologies are used should depend on what is best for the job - there's no reason why the two can't coexist.
I have a .NET background, but I recommended recently that we use Java for certain systems because in that space it was far more mature and 'enterprise ready', but for other systems we use .NET because Java can't compete (particularly for desktop based apps). The two quite happily talk to each other through several interfaces, primarily web services.
I really wish people would get off the anti-Microsoft or anti-Java bandwagons and realise that both technologies have their place, and the line is most likely to become more blurred over time.