A 9lb ham in the oven at 350°F usually needs about 2 to 2.5 hours to heat through properly. That answer covers most fully cooked, bone-in or boneless hams you’ll find at the grocery store. If you want to know exactly how long to cook 9lb ham in oven at 350, the rest of this guide breaks it down by ham type, doneness, and the little details that change the total time.
Most hams sold in stores are already cooked. You are reheating them, not cooking them from raw. That single fact changes everything about timing and temperature.
How Long To Cook 9Lb Ham In Oven At 350
At 350°F, plan on 13 to 17 minutes per pound for a fully cooked ham. For a 9-pound ham, that works out to roughly 2 hours to 2 hours 30 minutes.
Here is a quick reference you can scan in seconds:
- Fully cooked boneless ham, 9 lb: 1 hour 55 minutes to 2 hours 15 minutes
- Fully cooked bone-in ham, 9 lb: 2 hours 15 minutes to 2 hours 35 minutes
- Spiral-cut ham, 9 lb: 1 hour 50 minutes to 2 hours 10 minutes
- Fresh or raw ham, 9 lb: 2 hours 45 minutes to 3 hours 15 minutes
Bone-in hams take longer because the bone slows heat transfer through the center. Boneless hams heat faster and more evenly. Spiral-cut hams are thinner in places, so they warm up quicker but dry out faster too.
Why The Type Of Ham Matters So Much
Not all 9-pound hams behave the same in the oven. The label on the package tells you what you’re working with.
- Fully cooked: Safe to eat cold. You only need to reach 140°F internally.
- Cook before eating: Needs to hit 145°F to 160°F depending on the cut.
- Fresh ham: This is raw pork leg. It must reach 145°F and rest before slicing.
If you skip reading the label, you might pull the ham out too early or leave it in way too long. Check the packaging first. It takes ten seconds and saves your dinner.
How To Tell When Your Ham Is Done
Time is a guide, not a guarantee. Ovens run hot or cold. Your ham’s shape, fat cap, and starting temperature all affect the clock.
Use a meat thermometer. Insert it into the thickest part of the ham, away from bone and fat.
- Fully cooked ham: pull it at 140°F.
- Cook-before-eating ham: pull it at 145°F.
- Fresh ham: pull it at 145°F, then rest 15 to 20 minutes.
If you don’t own a thermometer, get one. Guessing leads to dry, chewy ham. A basic instant-read model costs less than a pizza delivery.
Step-By-Step: Cooking A 9Lb Ham At 350°F
Follow these steps and you’ll get a moist, evenly heated ham every time.
- Preheat your oven to 350°F. Let it fully reach temperature before the ham goes in.
- Take the ham out of the fridge 30 to 45 minutes ahead. A cold center adds 20 to 30 minutes to the cook time.
- Trim any tough rind but leave a thin fat layer. Fat keeps the meat moist.
- Place the ham cut-side down in a roasting pan. Add 1 cup of water, broth, or juice to the bottom.
- Cover loosely with foil. This traps steam and prevents the outside from drying.
- Roast for about 1 hour 30 minutes before you start checking. For a 9-pound ham, the total will land near 2 to 2.5 hours.
- Uncover during the last 20 to 30 minutes if you want a browned glaze or crust.
- Check the internal temp at the 2-hour mark. Continue cooking in 10-minute bursts until it hits your target.
- Rest the ham for 15 to 20 minutes before carving. This lets the juices settle back into the meat.
Resting is not optional. Skip it and you’ll lose a lot of juice to the cutting board.
Should You Cover The Ham Or Not?
Cover it for most of the cook. Foil keeps moisture in and helps the ham heat evenly.
Uncover it near the end if you applied a glaze. The last 20 to 30 minutes lets the glaze set and the surface brown without drying the inside.
If your ham already has a heavy glaze from the store, keep it covered the whole time and skip the extra browning step. It will still taste great.
Glazing Tips That Won’t Burn Your Ham
Sugar-based glazes burn fast at 350°F. Timing matters.
- Apply glaze in the last 30 minutes only.
- Brush it on in two or three thin layers, not one thick coat.
- If the top starts darkening too fast, tent it with foil again.
- Honey, brown sugar, and maple syrups are the biggest burn risks.
A simple mix of mustard, brown sugar, and a splash of vinegar works well and holds up to the heat.
Common Mistakes That Add Time Or Ruin The Ham
Small errors cost you big at the dinner table. Here are the ones I see most often.
- Starting with a frozen ham. A 9-pound frozen ham can take 4 to 5 hours. Always thaw in the fridge first, about 24 hours for every 5 pounds.
- Cooking at a higher temp to save time. Above 350°F, the outside dries out before the center warms.
- Not adding liquid to the pan. The drippings burn and the ham gets tough.
- Carving right away. Rest first, always.
- Trusting the clock over a thermometer. Every oven is different.
Fix these and your ham turns out tender and juicy, not rubbery.
How To Reheat Leftover Ham Without Drying It Out
Leftover ham dries out fast in the microwave. Use the oven instead.
- Set the oven to 325°F.
- Place slices in a baking dish with a splash of broth or water.
- Cover tightly with foil.
- Heat for 15 to 20 minutes until warmed through.
For a whole leftover ham piece, reheat at 325°F and check it every 15 minutes. It needs far less time than the first cook.
What About Ham Steaks And Smaller Cuts?
This guide is built around a 9-pound ham. If you’re working with something smaller, scale the time down.
- 1 to 3 lb ham: 30 to 50 minutes at 350°F
- 4 to 6 lb ham: 1 hour to 1 hour 40 minutes
- 7 to 8 lb ham: 1 hour 35 minutes to 2 hours 15 minutes
- 10 to 12 lb ham: 2 hours 20 minutes to 3 hours 20 minutes
Use the 13 to 17 minutes per pound rule as your starting point, then verify with a thermometer.
Final Timing Recap For A 9Lb Ham At 350°F
Most 9-pound fully cooked hams finish in 2 to 2.5 hours at 350°F. Bone-in takes a bit longer than boneless. Fresh ham takes longer still.
The internal temperature is the real test. Pull fully cooked ham at 140°F and cook-before-eating ham at 145°F. Rest it for 15 to 20 minutes, then slice.
Set a timer for the low end of the range, start checking early, and let the thermometer make the final call. That’s the whole method, and it works every time.