When I do math in my head, I usually combine a few approaches:

 * Try to re-use math I have memorized (such as the multiplication tables, powers of 2, powers of 3, *et cetera*)
 * Use "carrying" to split each number into a round number and an "error" term.  Often, the first operations will be on the number(s) that are closest to round numbers.
 * Chunk four-digit numbers into pairs of digits.
 * Use my fingers to store values as Roman numerals.  (This allows storing a pair of digits on my hands.)

For example:

 * 99 * 58 = (100 - 1) * 58 = 5800 - 58 = 5700 + 100 - 58 = 5742
 * 2048 + 1296 = 2048 + 1300 - 4 = 2044 + 1300 = 3344
 * 506 + 998 = 506 + 1000 - 2 = 504 + 1000 = 1504