Take him to the store and let him try a few out to see what is the best fit. We just did the for our son's 3rd birthday. We found a 16" to be the best fit for him and he should get many years use before he out grows it. Walmart had some good, reasonably priced options.
Re: Bike recommendation