It's probably better your way because in the first instance you'd perform the work / iterations twice, while an attacker can simply verify a password doing the work once (either for the cipher / encryption key or for the authentication tag / authentication key).
Generally though we'd try and make sure we would not be able to get either of the keys given another key. In your case, if you'd be able to retrieve the encryption key you'd also be getting the authentication key. That's probably better than the other way around, but it can be avoided by using a KDF twice:
$$K_{master} = \text{PBKDF}(\mathit{password}, \mathit{salt}, \mathit{iterations})\\
K_{enc} = \text{KDF}(K_{master}, \texttt{'enc'})\\
K_{mac} = \text{KDF}(K_{master}, \texttt{'auth'})$$
Here you can indeed use PBKDF2 as password hash, and PBKDF2 with a single iteration and the string as salt as KDF. However, if you have a choice, it makes more sense to use HKDF or HKDF-Expand to derive the encryption and authentication keys.
You could also use SHA-256 for PBKDF2 to derive two 128 bit keys or SHA-512 to derive two 256 bit keys. It is however not recommended to get retrieve more than the output size of the hash algorithm from PBKDF2, because it will perform all the iterations again to get additional output. And, as we've just discussed, an attacker doesn't have to perform those iterations to verify the correctness of a password.
You could also look at other algorithms such as Argon2.