I'll reply with my perspective as another ms employee. I've worked at microsoft since '98, on visual C++, C# and most recently the visual studio debugger/diagnostics teams. by and large I've enjoyed the experience, though naturally it has had its ups and downs. I came from a rather non-ms background (was a self-taught demo-coder, among other things) and really wasn't interested in working here long-term; I only accepted a full-time position because it was on the C++ team and I thought it would be an interesting product to work on.
I know several people that work at google (a previous intern of mine works there, as well as former co-workers). as I see it, many of the downsides of microsoft are the upsides of google and vice-versa, but in either case you're going to have a good benefits package and a chance to work on many different types of projects. google and microsoft treat "internal transfers" completely differently, but both companies have lots of projects going on in many spaces and smart people don't have a problem moving among projects as they want/need. of course, things aren't always as interesting as they seem from the outside, but that's life.
it is true, as other posters have noted, that most groups at ms don't try to work you to death (any more). the windows and sql teams still do have that reputation though; I don't think I'd go to work for them. I have heard that google works people harder, but the employees I know don't seem to mind.
some up-sides of microsoft include the location, the work environment and the people, though I imagine google shares in all of these but the location and adds its own (free food yada yada yada). and some people consider it a good thing on the resume to have spent time at the largest software company on the planet.
the biggest down-side of microsoft is the huge, monolithic corporate environment. this didn't bother me so much for the first few years, but as you progress in your career you're forced to deal with it more and more. *everything* at ms is ultimately politics and the longer you're here, the more you have to "play the game". that's not unusual for a large company (or even a not-so-large company), but it is frustrating as a software developer who could care less about politics. when I first started working here I used to laugh at Dilbert cartoons and think "thank god I don't work there". now I laugh at them because I DO work there...
if it were me, I'd choose google, but that's just because I spent most of the last decade working for ms and I'm a bit tired of it. :)
I'm sure you can't go far wrong with either choice. I would recommend that you plan on spending at least 2-3 years at whichever company you choose, so that you get well settled in, and then assess your options every year or so from then on; it's too easy to get stuck somewhere that you're not really happy, and not realize it. good luck!