I've actually had 3 BMWs. A 2000 Z3, a 2009 328 convertible, and a 2012 650 convertible. Had a good experience with all of them, but sold the 650 before a design flaw in the engine manifested itself in some big (5-figure) repair bills.
You have to do the maintenance, and you have to do it on time.
There are several BMW forums, and you can pick up some really good information there. For example, I backed out of the purchase of a 335 because of a thing called the high-pressure fuel pump (google that or HPFP, and you'll find reams of information).
They finally got that right, but it took years. Redesigned the engine that was in my 650, and the new version doesn't have the same problem that the old one did.
Point being, do your research, discover weaknesses, and make your decision with them in mind. Maintain the car like it was a prize puppy, and I'm not kidding.
I've had good experience with CarMax. The downside is that you pay more than you would for the same car from a regular dealership. There are several upsides that, in my opinion, make the higher price money well spent. #1, you can search all over the country for the combination you want. Try that with a local dealer. #1b -- the price is the price. Take it or leave it. No haggling. #2, they service anything they sell. #3, you can return the car within 5 days for any reason whatsoever, but that carries a big caveat. More on that in a minute.
I love the fact that, if you're just a bit patient and watch the site closely, you can get a 3-year old BMW with 12K miles (my 650), for less than half the new sticker. I've found that, within reasonable limits, age affects price more than mileage. So when I'm in the market for a car, I have a good idea of what I want, and watch the site like a hawk. Then, when one shows up that's 3 years old and has less than 15K miles, I'm on it. You can also view the Carfax on every car, for free.
I bought all three BMWs there, and my current Boxster (yes, I like German cars).
Caveats: If you find a car you want in, say, Salt Lake City (or anywhere else), you can get it shipped to the CarMax closest to you. The shipping fee is for shipping, nothing else, and is therefore gone. You don't have to buy the car, but you won't get your shipment money back. Even if you do buy the car, they won't credit the shipping fee toward the purchase.
The other thing is the return policy. They trumpet the 5-day thing pretty loud. What they don't tell you is that, first, it's in place of a pre-purchase inspection. You have to get the car inspected after you buy. If the inspection turns up something you don't like, so long as it's within 5 days, you get to return the car and un-do the purchase. The trade-in, however, is a different matter. Your old car is probably already sold at auction, and the trade won't be undone. So you're without a car until you make another decision.
Which is why I recommend CarMax for only name-brand quality manufacturers, 4 or fewer years old, with less than 20K miles. Chances of a lemon are still not zero, but they're a lot smaller than would otherwise be the case.
Happy hunting!