We show that the Tree Evaluation Problem with alphabet size k and height h can be solved by branching programs of size k^{O(h/\log h)} + 2^{O(h)}. This answers a longstanding challenge of Cook et al. (2009) and gives the first general upper bound since the problem's inception.