Eloise (Jillian Estell) har boet hos sin mormor og morfar hele sit liv, da hendes egen mor døde da hun skulle føde Eloise. Men endnu et dødsfald rammer familien, da mormoren kommer galt afsted i et trafikuheld. Så morfar Elliot (Kevin Costner) bliver nødt til at tage sig af lille Eloise. Det var primært mormoren der tog sig af pasningen af Eloise, og nu skal Elliot så lære det. Eliose lærer Elliot hvordan han skal opdrage hende, når han beder Eloise om at gøre noget, beordre hun ham til at råbe og være mere autoritær.
Da Elliot ikke kan hjælpe Eloise med sine lektier vælger han at hyre privatlæren Duvan (Mpho Koaho), som skal undervise dem begge i matematik og så fungere han også som chauffør, når Elliot er for fuld til at køre.
Det hele går egentlig fint nok indtil at Eloises farmor Rowena (Octavia Spencer) meddeler at hun vil have forældremyndigheden over Eloise. Elliot vil på ingen måde overlade sit barnebarn til Rowena, og hun formoder at det er fordi at hun er sort. Så kampen står mellem den hvide alkoholiserede morfar, som altid står klar checkhæftet, og den sorte farmor, der allerede tager sig af sine nevøer og niecer. Men Eloises far, Reggie (André Holland) vender tilbage efter mange års fravær, nu vil han have forældremyndigheden. Elliot har aldrig kunne lide Reggie, både fordi at han er stof afhængig og fordi at han var sammen med hans 17 årige datter.
Kevin Costner giver alt, hvad han kan til rollen som Elliot Anderson, men det er ikke nok til at redde filmen. Black or White’s fokus flytter sig fra at være et familiedrama til en film om racekamp. Filmen tager aldrig rigtig fat, hvilket er ærgerligt da selve grundhistorien har potentiale, der desværre bliver druknet i spørgsmål om race. Hvis bare man havde fokuseret mere på familierelationer og cuttet lidt af de 121 minutter af, så havde filmen nok lykkedes noget bedre.