Put chicken and buttermilk in two large plastic Ziploc bags or a flat dish and marinate in the refrigerator for at least two hours, turning every 30 minutes. This tenderizes the meat as well as removes any blood.
When ready to cook, remove chicken pieces from buttermilk, shake off excess liquid. Toss with dry ingredients. The chicken should be lightly covered, but it's okay if there are a few missed spots. You can also shake chicken with the dry ingredients in a large Ziploc bag.
Fill a large, heavy bottomed skillet or deep pot with enough oil to cover halfway up the largest piece of chicken. Heat oil to 325-350 degrees. If you don't have a cooking thermometer, wait for small bubbles to form.
Adjust heat so the oil bubbles are steady but not too rapid. Working in two or more batches, place the coated chicken in the hot oil. After about eight minutes, the chicken will be golden brown underneath. Turn over once and cook for an additional eight minutes or until nicely browned on both sides. The cooking process will agitate the pieces slightly, so you don't need to shift them around in the pan.
After frying, place chicken on a metal sheet tray covered in a paper towel and transfer to 200-degree oven to keep warm until serving. The chicken will stay moist for up to an hour.