The recent breakthrough circuit complexity lower-bound result of Ryan Williams provides a proof technique that uses upper-bound result to prove complexity lower-bounds. Suresh Venkat in his answer to this question, Are there any counter-intuitive results in theoretical computer science?, provided two examples of establishing lower-bounds by proving upper-bounds.
What are the other interesting results for proving complexity lower-bounds that was obtained by proving complexity upper-bounds?
Is there any upper-bound conjecture that would imply $NP \not\subseteq P/poly$ (or $P \ne NP$)?
[soft-question]
. $\endgroup$