Pretty old post but my recent experience may help someone. The 3-month rule depends on the consulate you are visiting. I went to Spain consulate for Schengen visa as they are the only (afaik?) European country to give visa immediately after validating all your docs.
My H1B was expiring 1 month after returning to USA, passport was valid for a year. I got the visa in 15 mins, had an amazing 11 day Euro-trip (Spain, Italy, Switzerland, and France) and returned to USA.
NOTE: You need to land in Spain AND/OR provide proof of stay in Spain for majority of your trip to apply in Spain consulate.