I think this is a better/simpler solution. The toggling behaviour you get from a flip-flop, in this case a "J-K" 74HC73 which with both inputs wired high, will toggle every time you clock it.
simulate this circuit – Schematic created using CircuitLab
R1/C1 is debounce circuit for SW1, which will cause the flipflop clock to go low for about 50ms each time you press the button. M1 provides drive current (up to 100mA) for the coil of the relay and D1 protects M1 from overvoltage when turning off.
RLY1 has a 5V coil (they're usually about 80mA) and contacts rated for your load. If you need a bigger relay with a coil that draws over 100mA, then use a bigger FET too like an AO3400 or similar.
R4/C3 is the reset circuit, which resets the flipflop to low (output off) on power-up. It will be in reset for about 10ms. D2 will quickly discharge C3 when the power is removed, forcing a clean reset.
C2 is a decoupling capacitor; you put it directly across the power terminals of the flipflop.
Edit: for completeness, I'll assume you may also need help with the 5V power supply. Look for a 7805 and read the datasheet/appnote for that, it will give you a clean 5V to run this circuit from any source between about 7V and 20V. The 7805 will need a heatsink if the source voltage is high and/or the relay coil draws a lot of current, but that's a whole other question and readily googleable.