A blood transfusion typically takes 1 to 4 hours to complete, depending on the patient's needs and the amount of blood being transfused.