Think of two darts players. One always lands in the same spot, but it's the wrong spot. That's bias: the model is too simple, like drawing a straight line through lemonade sales that rise with temperature and then level off. The other player's darts are centred on the bullseye but scattered everywhere. That's variance: the model is so flexible that it changes wildly whenever it sees slightly different data.
Making a model more flexible fixes the first player and creates the second. Your job is the middle: flexible enough to follow the real pattern, calm enough not to chase noise.
Test error splits into what your model is too rigid to capture (bias), how much it wobbles with the training sample (variance), and noise nobody can remove.
Imagine retraining the same model on a hundred different samples of the same world. Bias is how far the average of those hundred models sits from the truth: a straight line fitted to a curved relationship is wrong in the same way every time. Variance is how much the hundred models disagree with each other: a 15-degree polynomial chases each sample's quirks and looks different every time.
Flexibility trades one for the other. More capacity (deeper trees, a smaller $k$ in k-nearest neighbours (kNN), weaker regularisation) cuts bias and raises variance. Averaging many models (bagging, short for bootstrap aggregating), shrinkage (regularisation) and more data all cut variance. The best model sits at the bottom of the U-shaped test-error curve, and that bottom can never go below the irreducible noise.
$$\mathbb{E}\big[(y-\hat f(x))^2\big] = \underbrace{\big(\mathbb{E}[\hat f(x)] - f(x)\big)^2}_{\text{bias}^2} + \underbrace{\operatorname{Var}\big[\hat f(x)\big]}_{\text{variance}} + \underbrace{\sigma^2}_{\text{noise}}$$The decomposition is exact for squared loss. For 0-1 loss (simply counting right vs wrong) it's messier, but the intuition carries over. Modern caveat: very over-parameterised models can show “double descent”, where test error falls again past the interpolation point (the size at which the model can fit every training row exactly). Know the phrase; don't lead with it.