I've always simply written it "Happy birthday!" but my wife recently said that "Birthday" should be capitalized as well. What's grammatically correct?
... my wife recently said that "Birthday" should be capitalized as well.
In your case, the correct answer is, "Whatever your wife says."
For the rest of us, it seems to be the convention that we capitalize the name of the event in standard phrases of felicitation. E.g.
Merry Christmas, and a Happy New Year
This is an exception to the normal rules of capitalization.
When you're simply using the two word phrase as in, "Happy Birthday, Nick!" it would be capitalized. However, if you wrote, "He had a very happy birthday, I enjoyed it." It would not be capitalized.
This is one of those odd exception phrases that is capitalized outside of the general rules.
There's some good advice in the answers here, and there's advice that's absolutely wrong. The answer generally comes down to context, and there are also a lot of situations where you can pretty much do whatever you want. Unless you're writing a birthday card to your English teacher.
In a sentence, "happy" and "birthday" are capitalized according to the normal rules of capitalization: Capitalize the first word of the sentence and any proper nouns.
I hope you have a happy birthday.
Happy birthday to you!
When used alone (what this question is asking), you can either treat "happy birthday" as a title, or you can treat it as a fragment. In either case, you have some wiggle room.
Capitalize either all words, or all important words (excluding of, the, and so on). This is sometimes called "title case." When done in the middle of nowhere for no obvious Reason, I think of this as Case of Particular Importance, or Precious Case.
So we'd have:
Nick's Birthday Party
Please note that some complete sentences may also be capitalized in this form. Greeting cards are as much about design as they are about grammar.
Cards and advertising headlines frequently throw capitalization rules out the window in favor of what looks cool. (In advertising design courses in school, we were essentially told: It's what people do. Deal with it.) Please don't wince if you see the following:
It's Your Birthday And You're How Old, Exactly?
I Wanted To Buy You A Card To Wish You A Happy Birthday, But I Was Too Cheap
Capitalizing words in the middle of nowhere is positively weird, but people do it all the time. There are no hard-and-fast rules to cover this, only common usage. Common usage is fairly inconsistent.
So you can either go by regular English capitalization rules or you can do what card designers do and capitalize what looks cool. Pick one and stick with it.
Or you can write your message in ALL CAPS and bypass this problem entirely.
The salutation is usually rendered 'Happy Birthday' for the same reason that 'Treasure Island' is 'Treasure Island' and not 'Treasure island' or 'treasure island' - usage decrees that not only proper nouns, but also titles, headlines, first lines of poems, and standard phrases of felicitation be given increased emphasis / prominence by capitalisation of lexical words.
Nowadays, we often use quote-like structures for report structures, with the same verbs, so I would argue that the following are all quite acceptable:
She wished him "Happy Birthday!"
She wished him Happy Birthday. [report structure mimicking quote structure]
She wished him a happy birthday.
She wished him "Merry Christmas and a Happy New Year!"
She wished him Merry Christmas and a Happy New Year.
She wished him a merry Christmas and a happy New Year.
Birthday can be a common noun or an event. I often capitalize it in a sentence, as if it were an event. I think this is why I am able to get away with it. Either that, or it is because most people do it every which way. I do like the appearance better. Many people don't write a comma before the person's name.......
Happy Birthday, Dale! Happy birthday, Dale! Happy birthday Dale! Happy Birthday Dale!
If used as a two word sentence in the body, then you are correct not capitalizing the "b" in "birthday." However, if it is the title of something, then you would capitalize both letters. So, for example, it is appropriate to capitalize both words in the in the title of the Cracker song "Happy Birthday to Me." It is not appropriate to capitalize it in the sentence: "I want to wish you a happy birthday," or "'Happy birthday!' was the last thing I heard him say."