First, I'm going to illustrate this with some pictures, then I'll explain how the pictures work.

Here’s a typical number line, with 0 in the middle, the positive numbers going to the right, and the negative numbers going to the left.

I’m going to represent numbers as arrows. Here’s the number 2.

And here’s the number -2. Now the arrow is pointing to the left, instead of to the right.

Here is 2*3. We have three arrows, each of which has length 2. The result of 2×3 is at the head of the third arrow, 6.

Here’s -2×3. Now the arrows are pointing left, because they’re negative. So, when you put one after another like before, the end result is -6.

Here’s 2×-3. Now the arrows are pointing right again because the 2 is positive. But the arrows are being laid out backwards, because the 3 is negative. Here, the result is at the tail of the last arrow.

And finally, here’s -2×-3. Following the pattern, the arrows are pointing left and going backward, so the end result is positive.

So, why do these pictures work the way they do? Well, let’s start with addition.

Here’s 3+2. We start with a 3 arrow, and then we put a 2 arrow with its tail on the 3’s head. It should be clear why the head of the second arrow is at 5, the sum of 3 and 2.

Since 2×3 = 2+2+2, it should be clear why it should be represented by the picture above.

Before we get into multiplying negative numbers, let’s do subtraction. Here’s 3–2. This time, instead of putting the 2’s tail on the 3’s head, we put the 2’s head on the 3’s head, keeping the direction the same. Then the result of 3–2 is at the 2’s tail. I put the 2 arrow above so you can clearly see it, instead of overlapping the 3 arrow.

Why lay it out this way? Two reasons. One is to distinguish between subtracting a positive number and adding a negative number. Although the end result is the same, I think this will help when we get to subtracting negative numbers. The other reason is that subtraction is the inverse of addition. What that means is that, if x-y = z, then z+y = x. (For example, 3-2 = 1, 1+2 = 3) You can see how the 2 arrow is the same in the picture showing 3-2 and this picture showing 1+2.

Here’s 3 + (-2). The -2 arrow points left, because it’s a negative number, and because we’re adding it, we put its tail on the 3’s head. And this is why 3 – 2 = 3 + (-2).

And here’s 3 – (-2). Like the previous time we did subtraction, we put the second arrow’s head on the first arrow’s head, and the result is at the second arrow’s tail. And because the second arrow is pointing left, the tail is to the right. In other words, 3 – (-2) = 3 + 2.

Another way of looking at this is that subtraction is the inverse of addition. Since adding a negative number makes the result go down, then subtracting it makes it go up. 3 – (-2) = x. We can rearrange that to be x + (-2) = 3. And adding a negative number is the same as subtracting it’s opposite, x – 2 = 3, which we can transform into 3+2 = x = 5.

What does this have to do with multiplication? Well, multiplying by a positive number is straightforward, it’s just repeated addition. But how can you repeat something a negative number of times? That doesn’t make sense. So, if we want to be able to do that, we need to extend our idea of what multiplication is.

To do that, we look at what properties multiplication has, and figure out how to maintain those properties.

One important property of multiplication is that x×y = y×x. For example, 3×4 = 12 = 4×3. So, if want to keep that property for negative numbers, then 2×-3 must be equal to -3×2. -3×2 can be understood as repeated addition, -3 + -3 = -6. But that doesn’t help if both of the numbers are negative.

Let’s look at another important property. Consider, 2×3 = 6. 2×2 = 4, which is also equal to 6 – 2. 2×1 = 2, which is 4 – 2. In other words, if you know what 2×n is, then 2×(n-1) is equal to 2×n – 2. So, since 2×0 is 0, 2×(-1) must be equal to 0 – 2, which is -2. And 2×(-2) = -2 – 2 = -4. And if you follow that pattern, you’ll get 2×-3 = -6, which is the same answer we got using the last property.

And notice this property works for numbers other than 2. 3×3 = 9, 3×2 = 6 = 9 – 3. 3×1 = 3 = 6 – 3. So, 3×(n–1) = 3×n – 3. And more generally, x×(n–1) = x×n – x. What this means is that multiplying by a negative number can be interpreted as repeated subtraction. Just as 2×3 = 0+2+2+2, 2×-3 = 0–2–2–2. And that’s why in the picture above, I show multiplication by a negative number with the arrows going backward.

Since multiplying by a negative number is repeated subtraction, when we multiply a negative number by a negative number, we repeated subtract it, which means we go up into the positive numbers. -2×-3 = 0 – (-2) – (-2) – (-2) = 0 + 2 + 2 + 2 = 6.

To sum up, the reason that multiplying two negative numbers makes a positive number is that you're going backwards, backwards.